题解:UVA10523 Very Easy !!!
Charles_with_wkc · · 题解
思路:
额,看上去是一个很难的题目,实际上就是一个高精题目。
Python
python 直接计算,自带高精度。
for i in range(1, n + 1):
sum+=i*(a ** i)
C++
高精其实就是被模板就可以了。
for(int i=1;i<=m;i++){//枚举每个次方
for(int k=1;k<=i;k++){
for(int j=1;j<=a[0];j++) a[j]*=n;//计算a的i次方
for(int j=1;j<=a[0];j++){
if(a[j]>=10){//判定进位
a[j+1]+=a[j]/10;
a[j]%=10;
if(j==a[0]) a[0]++;//最高位进位
}
}
}
for(int i=1;i<=a[0];i++) a[j]*=i;//单独处理乘i
for(int i=1;i<=a[0];i++){
if(a[i]>=10){
a[i+1]+=a[i]/10;
a[i]%=10;
if(i==a[0]) a[0]++;
}
}
}
while(a[0]>1&&a[a[0]]==0) a[0]--;//前导零
for(int i=a[0];i>=1;i--) cout<<a[i];//逆序