四川网站建设公司百度投诉中心入口
用C语言实现输出水仙花数
什么是“水仙花数”?
所谓“水仙花数”是指一个n位数,其各位数字n次方之和等于该数本身。 例如:153=1 ^3 +5 ^3 +3 ^3
如何求解水仙花数?
思路:
步骤1:先计算出数i的位数,用count保存。
步骤2:获得 i 的每一位,并将它的每一位count次方求和后保存在sum中。
步骤3:判断当前的sum和数i是否相等,若相等则输出数i,这是的 i 就是水仙花数。
pow函数:必须加入头文件:#include <math.h>
pow() 函数用来求 x 的 y 次方,x、y及函数值都是double型
其原型为:double pow(double x, double y); pow(x,y):
用来计算以x 为底的 y 次方值,然后将结果返回。
代码:
#include<stdio.h>
#include<math.h>
int main() {for (int i = 0; i <= 100000; i++) {int temp = i;int count = 0;//计算i的位数while (temp != 0) {count++;temp /= 10;}temp = i;//此时让temp变回i//求temp的每一位int sum = 0;while (temp != 0) {sum += pow(temp % 10, count); //计算temp的最后一位数字的count次方,并将其加到sum中。//tmp % 10 取 tmp 的最后一位数字,pow 函数计算该数字的 count 次方。temp /= 10;}//判断当前sum和i是否相等,如果相等就输出iif (sum == i)printf("%d ", i);}return 0;
}
求sn=a+aa+aaa+aaaa+......的值
题目:
输入正整数a和n,编程 s=a+aa+aaa+aaaa+aa...a(n个a)的值。
例如:
a=2 ,n=5时,表示计算由2组成的数的和:2+22+222+2222+22222 ( 此时 共有5个数相加)。
输入:5 3 表示3个由5组成的数相加,即计算5+55+555的值,输出:615
输入:5 4 表示计算5+55+555+5555的值,输出:6170
提示:
本题,我们知道循环次数,所以使用for循环。
思考:给我们一个数a,我们怎么才能输出aa。比如,给我们数2,我们可以让2*10再+2,即可得到22.解决这一问题,我们就可以开始编写程序了。
#include<stdio.h>
int main()
{ int a,n;int t = 0;int sum = 0;scanf("%d %d",&a,&n);for(int i = 1;i<= n;i++){t *= 10;t += a;sum += t;}printf("%d ",sum); return 0;
}
祝大家生活愉快。