求Sn=a+aa+aaa+……+aa…a(n个a)之值,其中a是一个数字,n表示a的位数 。用C语言怎样编程

2024-10-30 04:29:12
推荐回答(5个)
回答1:

C语言编程:

#include 

int main(int argc, char *argv[])

{

int a;

int n;

int num=1;//计算每次n个a的值

int sum=0;//计算总和

int i;

scanf("%d%d",&a,&n);

for(i=0;i

{

if(i==0)//第一次

{

num=a;

sum+=num;

}

else//以后的都满足关系:这个数等于前一个数*10+a

{

num=num*10+a;

sum+=num;

}

}

printf("%d",sum);//输出总和

return 0;

详细操作:

打开Dev-c++软件,点击“新建源代码”。

具体程序如下:

#include

int main()

{

int i,j,a,n,sum=0,term=0;

printf("please input a number:");

scanf("%d",&a);

printf("please input n number:");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

term=term*10+a;

sum=sum+term;

}

printf("a+aa+aaa+...+a...a=%d",sum);

return 0;

编写完程序之后,点击运行即可得出结果。最后的结果是根据自己输入的n值和a值为基础来进行运行的,每次输入的值不同,结果也会不同。

其中:for表示循环结构,i 表示循环条件,在编写程序时,注意给赋予增值变量的条件。

其中:term=term*10+a 中的term表示a的位数,跟随每次循环结构的变换,term不断被赋予新值。sum=sum+term 表示累加的值,每次循环之后的sum都会被赋予新值,所以,在编写程序时,要注意 i 的最大循环次数,否则,此程序会无限选循环下去,最终没有结果。

回答2:

#include 

int main(int argc, char *argv[])

{

int a;

int n;

int num=1;//计算每次n个a的值

int sum=0;//计算总和

int i;

scanf("%d%d",&a,&n);

for(i=0;i

{

if(i==0)//第一次

{

num=a;

sum+=num;

}

else//以后的都满足关系:这个数等于前一个数*10+a

{

num=num*10+a;

sum+=num;

}

}

printf("%d",sum);//输出总和

return 0;

回答3:

#include 

void main()

{

int a,n;

int i,j;

long s=0,x=1,y;

printf("请输入a和n的值:\n");

scanf("%d%d",&a,&n);

for(i=0;i

{

x*=10;

y=a*(x-1)/9;/*aaaa的表示方法*/

s+=y;

}

printf("s=%ld\n",s);

}

回答4:

首先,an=a*111…1=a/9*999…9=a/9*(10^n-1)。所以,sn=a/9*(10-1+10^2-1+…+10^n-1)=a/9*(1+10+10^2+…+10^n-n-1)=a/9*((10^(n+1)-1)/9-n-1)。
剩下用C编程好了。用循环是最笨的办法。

回答5:

举个例子吧,2222就等于(10000-1)/9*2,在用个累加就行了,思路是这样,