编写程序计算1+22+333+4444+…的前n项的值,n由用户输入(0<n<10).
**提示信息格式要求: “please input how many terms you want to compute?:\n”
**输入格式要求:"%d"
**输出格式要求:
当n<1或n>=10时 输出:“Overflow!\n”
当n>=1&&n<10 时 输出格式:“sum=%ld\n”
提示: 幂函数 pow(a,b)
#include<stdio.h>
#include<math.h> //调用pow函数
int main()
{
int n, i, j, a;
long sum = 0;
printf("please input how many terms you want to compute?:\n");
scanf("%d", &n);
if (n < 1 || n >= 10)
printf("Overflow!\n");
else
{
for (i = 1; i <= 5; i++)
{
a = i; //每一次都对 a 赋初值i,解决每一项的个位数,然后只需乘10加上前面几位即可
for (j = 1; j <= i; j++)
{
if (j - 1 > 0) //此处需要用if判断,否则,假设a初值为1,若无判断,则在内循环中会变成 2。会引起结果错误
a += i * pow(10, j - 1);
}
sum += a; //循环体内的东西自己最好动手画一下就可以懂了,文字描述不是太清楚
}
printf("sum=%ld\n", sum);
}
}