求S=a+aa+aaa+aaaa……,(一共n项),a是1到9的一个数。 请问我下面的程序哪儿错了吗? #include int main() { int i,a,n,sn=0; scanf("%d%d",&a,&n); for(i=1;i<=n;i++); sn=sn+an(a,i); printf("%d",sn); return 0; } int an(int k,int n) { int s; if(n=1) s=k; else s=k*10^(n-1)+an(k,n-1); return an; }
#include <math.h>
int an(int k, int n)
{
int s;
if (n == 1)
s = k;
else
s = k * pow(10.0,n-1.0) + an(k, n - 1);//10 ^ (n - 1)
return s;
}
int main()
{
int i,a,n,sn=0;
scanf_s("%d%d",&a,&n);
for(i=1;i<=n;i++)
sn=sn+an(a,i);
printf("%d",sn);
return 0;
}
错误比较多啊,首先if判断中if(n=1)要改为if(n==1),另外return an肯定也不对,return s吧
#include "stdio.h"
#include "math.h"
void main()
{
/*
a+aa+aaa+aaaa
*/
int a,n,sum=0,i=0,j,pos;
printf("请输入一位的数字和最大的位数");
scanf("%d,%d",&a,&n);
for(i=0;i<n;i++)
{
pos=0;
for(j=0;j<=i;j++)
{
pos+=a*pow(10,j);
}
printf("%d+",pos);
sum+=pos;
}
printf("=%d",sum);
}
#include <stdio.h>
#include <math.h>
int main()
{
int a = 0;
int n = 0;
long ds = 10;
long sum = 0;
printf("请输入a和n的值:");
scanf("%d,%d",&a,&n);
//sum= a + aa + aaa + ...
//sum = a + a+a*10 + a+a*10+a*100
//sum = n*a + (n-1)*a*10 + (n-2)*100 + ..
for(int i = 0; i < n; i++)
{
long dd = (n-i) * a * pow(10.0,(long)i);
sum += dd;
}
printf("结果=%d\n",sum);
getchar();
getchar();
return 0;
}
这个一个for循环就搞定了。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y