问题 B: 求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值
题目描述
求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字(1<=a<=9)。例如:2+22+222+2222+22222(a=2,n=5),a和n由键盘输入。
输入
a和n
输出
和
样例输入
copy
样例输出
24690
思路: 先通过sum1:210+2;2100+22;2*1000+222 的规律算出来每一项的值, 再用一个变量接住他们的和
代码:
#include<stdio.h>int main(){int i,m,sum2=0;//m倍数,sum1是每一个数,sum2是最终的和 int a,n,s=1;scanf("%d %d",&a,&n);int sum1=a;for(i=0;i<n-1;i++){s*=10;//自己循环试试:10 100 1000m=a*s;//20 200 2000 sum1=sum1+m;//22 222 sum2+=sum1;//22 22+222}sum2+=a;printf("%d",sum2);return 0;}
某个数的指数实现形式:
1.pow(x,y); x的y次方,头函数#include<math.h>
注:如果要求自然对数的底e的指数,可以使用函数exp(x),即e的x次方
2.跟本题中我写的样儿
for(i=0;i<n-1;i++)
{s*=10; /在这里对变量计算即可/ }
3.e(只能十的次方)
例:3.2乘以10的5次方
3.2E+5或3.2e5
此题的感悟:一个题首先要确定的就是思路,看到既有指数函数又有加法就要想分步骤去做,即先求出来每个数再相加
做题要先化难为简,把乱七八糟的摘清楚步骤,然后逐个击破,并且在做的时候要注意寻找规律
如果觉得《OJ求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值》对你有帮助,请点赞、收藏,并留下你的观点哦!