求a+aa+aaa+……+aa……a之值,aa……a是n个a.其中a是一个数字,n表示a的位数,例
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<n;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 的最大循环次数,否则,此程序会无限选循环下去,最终没有结果。
#include int main(void){ int a,n,count=1,sn=0,tn=0; printf("请输入a和n:
"); scanf("%d%d",&a,&n); while(count<=n) { tn=tn*10; tn=tn+a; sn=sn+tn; count ++; } printf("结果=%d
",sn); return 0;}
= a*(1+11+111+……+11……1)
= a/9 * (9+99+999+……+99……9)
= a/9 * (10 + 100 + 1000 + ……+ 100……0 - n)
= a/9 * (11……1*10 - n)
= a/9 * (99……9*10/9 - n)
= a/9 * [(100……0-1)*10/9 - n]
= a/9 * [(10^n -1)*10/9 - n]
当a=2,n=5时
a+aa+aaa+……+aa……a
= 2/9 * [(10^5 -1)*10/9 - 5] = 24690
令S=1+11+111+...+1...1
则原式=aS
S=1*10^(n-1) + 2*10^(n-2) + ... + (n-1)*10 + n
10S=1*10^n + 2*10^(n-1)+ ... + (n-1)*10^2+n*10
作差有
9S=10^n+10^(n-1)+...+10-n=10(10^n-1)/9 - n
则原式=aS=10a(10^n-1)/81 - an/9
=na+(n-1)a*10+(n-2)a*10^2+(n-3)a*10^3+.....++2a*10^(n-2)+a*10^(n-1)
=a(n+(n-1)*10+(n-2)10^2+(n-3)10^3+.....++2*10^(n-2)+10^(n-1))
=a(n+10n+n*10^2+...+ n*10^(n-1)) -(10+2*10^2+3*10^3+4*10^4+....+(n-1)*10^(n-1))
=a(n(10^n-1)/9-10*(n*10^(n+1)-(n+1)10^n+1)/81))
#include <stdio.h>
void main()
{
int m,sum=0;
int a,n;
printf("请输入a的值:\n");
scanf("%d",&a);
printf("请输入n的值:\n");
scanf("%d",&n);
for(m=1;m<=n;m )
{
sum =a;
a=a*10 a;
}
printf("sum=%d",sum);
}
求a+aa+aaa+……+aa……a之值,aa……a是n个a.其中a是一个数字,n表示a...
a+aa+aaa+……+aa……a = 2\/9 * [(10^5 -1)*10\/9 - 5] = 24690
求a+aa+aaa+……+aa……a之值,aa……a是n个a.其中a是一个数字,n表示a...
令S=1+11+111+...+1...1 则原式=aS S=1*10^(n-1) + 2*10^(n-2) + ... + (n-1)*10 + n 10S=1*10^n + 2*10^(n-1)+ ... + (n-1)*10^2+n*10 作差有 9S=10^n+10^(n-1)+...+10-n=10(10^n-1)\/9 - n 则原式=aS=10a(10^n-1)\/81 - an\/9...
计算a+aa+aaa+……+aa…a(n个a)的值
a+aa+aaa+……+aa…a(n个a)=a(1+11+111+……+11…1(n个1))=a*[(10-1)\/9+(100-1)\/9+……+(10^n-1)\/9]=a*[(10+100+……+10^n)\/9-n\/9]=a*[10*(1-10^n)\/(1-10)\/9-n\/9]=a[10^(n+1)-9n-10]\/81 ...
C语言.编程计算a+aa+aaa+……+aa…a(n个a)的值,要求n和a由用户从键盘输...
i++){s+=A;A=A+a*pow((double)10,i);}return s; }
一个C语言问题..输入两个整数a和n,计算下面表达式的值。
根据题目给出的表达式,可以得到一个递推式:sum = a + aa + aaa + …… + aa...a(共n个a)其中,aa...a表示a重复n次。为了方便计算,我们可以将每一项拆开来单独计算,然后将它们相加。具体来说,对于第i项,它的值为 ai = a*10^(i-1) * (1+10+(10^2)+...+(10^(n-i)...
求指教。C语言.编程计算a+aa+aaa+……+aa…a(n个a)的值,要求n和a由用 ...
s定义时赋初值为0,另外在for循环的时候循环变量i的初值应为1,或是控制循环的时候改成i<n;这样循环了n次,否则是n+1次,再输入a,n的时候最好做个明显的分隔,应该这样写scanf("%d\\t%d",&a,&n);两个格式控制符中间应该加点东西分隔,比如逗号什么的。希望我的回答能对你有所帮助。。。共同...
用c 语言,还有编程计算a+aa+aaa+…+aa…a〔n个a〕的值,n个a的值由键...
a+aa+aaa+…+aa…a=a(1+11+111+...+111...11)\/\/\/ long N(){ char str[100];int s=1,t=1,i,n;scanf("%s",str);\/\/将n个a的值按字符串的方式接收到str;n=strlen(str);for(i=2;i<=n;i++){ t=t*10+1;s=s+t;} return (s*(str[0]-'0'));} ...
求S=a+aa+aaa+...+aaa...a的编程题
求Sn=a+aa+aaa+...+aaa...a(n个a)之值,其中a是一个数字。例如;2+22+222+2222+22222(此时n=5),n由键盘输入。初看的话,觉得它有点棘手,觉得代码要挺长的,但事实上却可以这样写:c语言代码:include <stdio.h> void main(){ int a,n,i=1,sn=0,m=0;printf("a,n=");sc...
编程计算a+aa+aaa+…+aa…a(n位a)的值,n和a的值由键盘输入
include <stdio.h> include <stdlib.h> int main(){ int n,a,i;int sum,na;printf("Please input n and a:");scanf("%d %d",&n,&a);sum=0;na=a;for(i=1;i<=n;i++){ sum+=na;na=na*10+a;} printf("sum=%d\\n",sum);system("pause");return 0;} ...
用c 语言,编程计算a+aa+aaa+…+aa…a〔n个a〕的值,其中a是一个数字...
\/\/用c 语言,编程计算a+aa+aaa+…+aa…a〔n个a〕的值,其中a是一个数字,n键盘输入.n=5,a=3 include <stdio.h> int pow(int x,int y) \/\/x的y次方 { int i=0;int result=1;for(;i<y;i++){ result*=x;} return result;} int add(int a,int n){ int i=1;int result...