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
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
第一题:
#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.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.