前言
本系列为C语言菜鸟100道基础经典例题详解刷题系列。每天1题,点滴成长,一起逆袭。
一、题目描述
题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
二、题目分析
程序分析:关键是计算出每一项的值。
三、解题
程序运行代码1
#include<stdio.h>
int main()
{
int i,j,a,n,sum=0,y;
scanf("%d %d",&a,&n);
for(i=1;i<=n;i++){
y=0; //确保第一个数为2
for(j=1;j<=i;j++){ //求每一项2,22,222......
y=y*10+a; //根据规律得出
}
sum+=y;
}
printf("sum=%d",sum);
return 0;
}
程序运行代码2
#include<stdio.h>
#include<math.h>
int main()
{
int i, a, n, sum=0;
printf("请输入 a 和 n:\n");
scanf("%d%d", &a, &n);
for(i=0; i<n; i++)
{
sum += a*pow(10, i)*(n-i);
}
printf("sum is %d\n", sum);
return 0;
}
总结
C语言 pow() 函数用来求 x 的 y 次方的值。
头文件:math.h
语法/原型:
double pow(double x,double y);