求Sn=2+22+222+2222+22222+22…2222(最后一项n个2)
Description
Sn=2+22+222+2222+22222+22…2222(最后一项n个2)
Input
n
Output
Sn
Sample Input
5
Sample Output
24690
思路:
一般思路是求出一个个项数(本人这种方法不知为什么错了,然后想了这个简洁的方法),此方法为求出每个位的2有几个,在那个位上加起来。
比如n=6时,个位有6个2,十位有5个2,…十万位有1个2,算出每个位的大小,再乘上2的个数的两倍,即要求的值。
#include<stdio.h>
#include<math.h>
int main(){
int x,i,s=0;
scanf("%d",&x);
for(i=1;i<=x;i++)
s+=2*(x+1-i)*pow(10,i-1);//加上这个位的值
printf("%d",s);
return 0;
}