A. 完全平方数
Description
在圣慧星兰女子学院中,流传这七大不可思议的故事。
其中一个名叫:钟楼的狼人。
传说钟楼的狼人会在夜晚的特定时间出现,而为了算出狼人下一次出现的时间,你决定去请教数学非常好的小H同学。然而小H同学正在和她的男朋友约会,于是,不耐烦的她丢给了你这样一个问题并对你说:把这个问题解决了再来找我。
为了知道钟楼的狼人的秘密,你学要尽快解决这个问题,当然,听完这个问题的你非常高兴,因为这个问题对你来说实在太简单了。这个问题就是:求12+22+32+……+n2的值。
Input
一行,一个整数n。
Output
一行,一个整数,表示这个值
Samples
Input Copy
3
Output
14
Hint
【解释说明】
1^2+ 2^ 2+3^ 2=1+4+9=14。
【数据范围】
对于30%的数据,3≤n≤1000000。
对于100%的数据,3≤n≤10^1000。
输入数据保证n不含有前导0。
【备注】1^2+ 2^2 + 3^2+……+ n^ 2=n*(n+1)*(2n+1)/6。
、、、、、、、、、、、、、、、、、、、、、、、、、
辛辛苦苦 零零散散 学高精度 虽说只学了一点点皮毛
我也是醉了 不知道怎么说啊 还有很多高精度不会1
这个题啊 就是高精度啊 不会的话 还是得看看高精度 然后 再看这个题
(我的博客里有一个高精度好像 诶嘿,怎么说 那个博客也是我看这个题才写的)
我起了 这波秒不了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn =1e6+199 ;
char shu1[maxn];
int qo1[maxn];
int qo2[maxn];
int qo3[maxn];
int jg[maxn]={
0};
int jg1[maxn]={
0};
int jg2[maxn]={
0};
void jia(int a[])
{
a[1]+=1;
int i=1;
while(a[i]==10)
{
a[i]=0;
a[i+1]++;
a[0]+=(i==a[0]);
i++;
}
}
void gcheng(int a[],int b[])
{
jg[0]=a[0]+b[0];
for(int i=1;i<=a[0];i++)
{
for(int j=1;j<=b[0];j++)
{
jg[i+j-1]+=a[i]*b[j];
}
}
for(int i=1;i<=jg[0];i++)
{
if(jg[i]>=10)
{
jg[i+1]+=jg[i]/10;
jg[i]%=10;
jg[0]+=(i==jg[0]);
}
}
while(jg[0]>1&&jg[jg[0]]==0)
{
jg[0]--;
}
}
void gcheng1(int a[],int b[])
{
jg1[0]=a[0]+b[0];
for(int i=1;i<=a[0];i++)
{
for(int j=1;j<=b[0];j++)
{
jg1[i+j-1]+=a[i]*b[j];
}
}
for(int i=1;i<=jg1[0];i++)
{
if(jg1[i]>=10)
{
jg1[i+1]+=jg1[i]/10;
jg1[i]%=10;
jg1[0]+=(i==jg1[0]);
}
}
while(jg1[0]>1&&jg1[jg1[0]]==0)
{
jg1[0]--;
}
}
void dcheng(int a[])
{
for(int i=1;i<=a[0];i++)
{
a[i]*=2;
}
for(int i=1;i<=a[0];i++)
{
if(a[i]>=10)
{
a[i+1]+=a[i]/10;
a[i]%=10;
a[0]+=(i==a[0]);
}
}
}
void chu(int a[],int n)
{
int x=0;
for(int i=a[0];i>=1;i--)
{
jg2[i]=(x*10+a[i])/n;
x=(x*10+a[i])%n;
}
jg2[0]=a[0];
while(jg2[jg2[0]]==0&&jg2[0]>1)
jg2[0]--;
}
void pl(int a[])
{
for(int i=a[0];i>=1;i--)
cout<<a[i];
}
int main()
{
scanf("%s",shu1);
int len1=strlen(shu1);
for(int i=0;i<len1;i++)
{
qo1[len1-i]=shu1[i]-'0';
qo2[len1-i]=shu1[i]-'0';
qo3[len1-i]=shu1[i]-'0';
}
qo1[0]=qo2[0]=qo3[0]=len1;
jia(qo2);
dcheng(qo3);
jia(qo3);
gcheng(qo1,qo2);
gcheng1(jg,qo3);
chu(jg1,6);
pl(jg2);
return 0;
}