c语言--水仙花数,求Sn的前五项和

用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是否相等,如果相等就输出i
		if (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;
}

祝大家生活愉快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴怒香菜统治世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值