问题描述
- 请大神们用c语言编写,并且用for循环,尽量不要太复杂,谢谢
-
/**给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++?+aa?a(n个a)之和。输入格式:
输入在一行中给出不超过9的正整数a和n。
输出格式:
在一行中按照“s = 对应的和”的格式输出。
输入样例:
2 3输出样例:
s = 246
**/
解决方案
#include<stdio.h>
void main(){
int i =0;
int sum = 0;
int a ;
int tmp = 0;//第n项
int n =0;
printf("input a: ");
scanf("%d",&a);
printf("input n:");
scanf("%d",&n);
tmp = a;
for(i = 0; i < n; i++){
sum += tmp;
tmp = tmp * 10 + a;//通项公式A(n)=A(n-1)*10 + a
}
printf("%d
",sum);
}
解决方案二:
C语言for循环
C语言中简单的for循环和浮点型变量
作业《IOS_C语言》while|循环,do...while循环,for循环
解决方案三:
#include
int main(){
int a,n;//a数字 n是次数
long sum=0;//定义一个变量是总和 ,10个九位数 相加也不会超过11位数,因此用long
scanf("%d %d",&a,&n); //录数据
//因为是n个数相加,因此得循坏n次 ,我采用的方法是对应位数上相加,如个位数肯定要加n次,即n*a,十位数有n-1个,即(a*10)以此类推,如为第i位,则为n-i个数,对应的数值
//a*(10^(i-1)) 注意:注释中的i和代码中的i无关
for(int i=0;i<n;i++){
long tempSum=a;
long countNum=n-i;
for(int j=0;j<i;j++){
tempSum=tempSum*10;
}
tempSum=countNum*tempSum;
sum=sum+tempSum;
}
printf("%d",sum);
}
解决方案四:
double A(int n,int a)
{
double sum=a;
for(int i=1;i<n;i++)
{
sum=sum*10+a;
}
return sum;
}//n个a的和
int main()
{int a,n;
scanf(a=%d,n=%d,&a,&n);
double sum=0;
for(int i=1;i<=n;i++)
{
sum =sum+A(a,i);
}
printf("s=%d",sum);
}