高手来啊,帮帮小弟

a15110009723 2011-03-20 04:40:40
老师留的题,n和a,如果n=2,a=3,输出结果是"2+22+222"


#include<stdio.h>
#include<math.h>
main()
{
int a,n,i;
double sum,product,item;

printf("enter a,n\n");
scanf("%d%d",&a,&n);

sum=0;
product=1;
item=0;
for(i=0;i<=n-1;i++){

product=product*a*pow(10,i);
item=item+product;
sum=sum+item;
}
sum=(int)sum;
printf("sum=%d\n",sum);
return 0;
}



我这么写对吗,求全解
...全文
156 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xsh716 2011-03-20
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "conio.h"

main()
{
int b=1,n;
long int a,c,e;
scanf("%ld%d",&a,&n);
e=a;c=a;
while(b<n)
{
a=a*10+e;
c=c+a;
b++;
}
printf ("%ld",c);
getch();
}

计算值的话 这样可以把
witwolf 2011-03-20
  • 打赏
  • 举报
回复

#include<stdio.h>
int sum(int m,int n){
if(n==1)
return m;
else return 10*sum(m,n-1)+n*m;
}
int main(){
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",sum(m,n));

}
xsh716 2011-03-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xsh716 的回复:]
C/C++ code
#include<stdio.h>
#include<math.h>
main()
{
int a,b=1,n,c=1,d=1,i,j,k;
scanf("%d%d",&a,&n);
k=a;
for(i=1;i<=n-1;i++)
c=c*10;
while(a<c)
{
……
[/Quote]
小弟新手 写的后面那个感觉很啰嗦 哪位高人帮忙修正下啊
xsh716 2011-03-20
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<math.h>
main()
{
int a,b=1,n,c=1,d=1,i,j,k;
scanf("%d%d",&a,&n);
k=a;
for(i=1;i<=n-1;i++)
c=c*10;
while(a<c)
{
printf("%d+",a);
for(j=1;j<=b;j++)
d=d*10;
a=k*d+a;
b++;
d=1;
}
printf("%d",a);
getch();
}
likeOwind 2011-03-20
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "math.h"
void main()
{
double a,n,i,sum,item;
printf("Enter a,n:");
scanf("%lf%lf",&a,&n);
sum=0;
item;
for(i=0;i<=(n-1);i++)
{
item+=a*pow(10,i);
sum+=item;

}
printf("%.0lf",sum);
return 0;


}
lxfjiangsu 2011-03-20
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<math.h>

int main()
{
int a,n;
int sum;
int i;
int Sum;

printf("input a n\n");
scanf("%d%d",&a,&n);
printf("a=%d\tn=%d\n",a,n);
sum=0;
Sum=0;
for(i=0;i<n;i++)
{
sum+=pow(10,i)*a;
if(i<n-1)
{
printf("%d+",sum);
}
else
{
printf("%d",sum);
}
Sum+=sum;
}
printf("=%d\n",Sum);

return 0;
}
shengyu_0 2011-03-20
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<math.h>
int main()
{
double a,n,i;
double sum,product;

printf("enter a,n\n");
scanf("%lf%lf",&a,&n);

sum=0;
product = 0;
for(i = 0; i <= n - 1; i++)
{
product += a*pow(10,i);
sum = sum + product;
}
printf("sum=%-16.0lf\n",sum);
return 0;
}

你可以仔细看看,呵呵
witwolf 2011-03-20
  • 打赏
  • 举报
回复

#include<stdio.h>
int sum(int m,int n){
if(n==1)
return m;
else return 10*sum(m,n-1)+n*m;
}
int main(){
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",sum(m,n));

}
更简便。。
xali 2011-03-20
  • 打赏
  • 举报
回复
//a和n,如果a=2,n=3,输出结果是"2+22+222"
#include<stdio.h>
#include<math.h>
int main()
{
int a,n,i;
int sum,product,item;

printf("enter a,n\n");
scanf("%d %d",&a,&n);

sum=0;
//product=1;
item=0;
for(i=0;i<n;i++){
product=int(pow(float(10),i)+0.5);//这里加0.5是为了防止实数转整型截断小数点后面的值。
item=item+a*product;
sum=sum+item;
}
printf("sum=%d\n",sum);
return 0;
}
请注意,我理解a,n和你程序中表达的意思是不一样的,是不是问题的原意是:a+aa+aaa+aaaa+……
一共n个数相加,我是这样理解。
程序中int,double类型是问题,逻辑和表达是又一个问题。用调试单步跟踪,就能知道对错了。
愤怒的熊猫007 2011-03-20
  • 打赏
  • 举报
回复
#include< iostream >
#include <string>
using namespace std;

int main()
{
string a;
int n;
cin>>a;
cin>>n;
string out;
for (int i = 0; i < n; i++)
{
string temp;
for (int j = 0; j <= i; j++)
{
temp += a;
}
if (i == 0)
{
out = temp;
}
else{
out = out + "+" + temp;
}

}
cout<<out;
}
無_1024 2011-03-20
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<math.h>
int main()
{
int a,n,i;
double sum,product,item;
printf("enter a,n\n");
scanf("%d%d",&a,&n);
sum=0;
product=1;
item=0;
for(i=0;i<=n-1;i++)
{
product=a*pow(10,i);
//printf("%lf\n",product);
item=item+product;
sum=sum+item;
//printf("sum=%lf\n",sum);
}
sum=(int)sum;
printf("sum=%.0lf\n",sum);
return 0;
}

firefoxbug 2011-03-20
  • 打赏
  • 举报
回复
不对的 我试了结果是0,错误可能就出现在sum 是double类型的,但是你把它强制转换成Int,Int 是四个字节的,double是八字节的,(在32位操作系统下),你一强制转换,估计不行。你看,老师的题目算出来肯定是整数啊,你都int a了,还不如把sum也定义成int型的,不就少了很多麻烦?
Freedom 2011-03-20
  • 打赏
  • 举报
回复

#include <iostream>
#include <string>
using namespace std;
void main()
{
int a,n;
int sum=0,s=0;
int i=0;
printf("请输入a和n的值");
scanf("%d%d",&a,&n);
for (i=0;i<n;i++)
{
s=10*s+a;
sum+=s;
}
printf("%d",sum);
}

自己看看吧很简单的
likeOwind 2011-03-20
  • 打赏
  • 举报
回复
main 前面加int

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧