永发信息网

三个编程题,,急!!!

答案:2  悬赏:0  手机版
解决时间 2021-05-11 11:47
  • 提问者网友:夢醒日落
  • 2021-05-10 23:24

1输入一个整数,求它的各个位数之和及位数。例如234的各个位数之和是9,位数是3

2输入l两个正整数a和n,求a+aa+aaa+....+aaaa..a之和。例如,输入2和3.输出246(2+22+222)

3.求1~10000之间所有满足个个位数的立方和等于它本身的数例如153的各位数字的立方和是1的立方+5的立方+3的立方=153

最佳答案
  • 五星知识达人网友:醉吻情书
  • 2021-05-11 01:00

第一题:


#include <stdio.h>


int main()
{
int n,cnt=0,sum=0;
scanf("%d",&n);
while(n){
cnt++;
sum+=n%10;
n/=10;
}
printf("%d\t%d\n",sum,cnt);
return 0;
}



第二题:


#include <stdio.h>


int main()
{
int a, n, i, t;
int sum = 0;
scanf("%d%d",&a,&n);
t = a;
for ( i = 0; i < n; ++i ) {
sum += a;
a = a*10+t;
}
printf("sum=%d\n",sum);
return 0;
}



第三题:


#include <stdio.h>
#include <math.h>
int main()
{
int i,n,sum;
for(i=1;i<10000;++i)
{
n=i;
sum=0;
while(n)
{
sum+=pow(n%10,3); //因为题目只是规定"个位数的立方和等于它本身" 所以4位数就没有
n/=10;
}


if(i == sum)
{
printf("%d\n",i);
}
}
return 0;
}



关于第三题. 如果是要求10000以内的水仙花数.可以改成这样:


#include <stdio.h>
#include <math.h>
int main()
{
int i,n,e,sum;
for(i=100;i<10000;++i) //水仙花数必须大于等于3位数.
{
n=i;
e=sum=0;
while(n){
e++;
n/=10;
}
n=i;
while(n)
{
sum+=pow(n%10,e);
n/=10;
}


if(i == sum)
{
printf("%d\n",i);
}
}
return 0;
}



关于补充问题.代码如下:



#include <stdio.h>


int main()
{
int n,k,i=2,j=1;
float sum=0.0;
scanf("%d",&n);
for(k=0;k<n;k++)
{
sum+=1.0*i/j;
i=i+j;
j=i-j;
}
printf("%.2f\n",sum);
return 0;
}

全部回答
  • 1楼网友:有你哪都是故乡
  • 2021-05-11 01:41

1.vs做的

class Program { static void Main(string[] args) { int num,count=0; int temp,sum=0; Console.WriteLine("请输入一个数"); num = int.Parse(Console.ReadLine()); while (num != 0) { temp = num % 10; num = num / 10; sum = sum + temp; count++; } Console.WriteLine("各位数字之和为{0}\n位数为{1}",sum,count); Console.ReadLine(); } }

2.

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯