C语言求解1000以内的水仙花数

水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。

话不多说,让我们用C语言来求出他:

#include<stdio.h>
int main()
{
	int a,b,c,m=100;
	loop:
		a=m/100;
		b=(m-a*100)/10;
		c=m%10;
		if(a*a*a+b*b*b+c*c*c==m)
		printf("%d\n",m);
		m++;
		if(m<1000)
		goto loop;
		return 0;
	
}
  1. int a, b, c, m = 100;:在这一行中,定义了四个整数变量 abcm,并初始化 m 为 100。abc 用来分别表示三位数的百位、十位和个位数字。

  2. loop::这是一个标签(label),用于标识一个代码块,以便后续使用 goto 语句跳转到这个标签。

  3. a = m / 100;b = (m - a * 100) / 10;c = m % 10;:这三行代码分别用来计算三位数 m 的百位、十位和个位数字。a 获取百位数字,b 获取十位数字,c 获取个位数字。

  4. if (a * a * a + b * b * b + c * c * c == m):这是一个条件语句,用于检查当前的 m 是否为水仙花数。如果各位数字的立方和等于 m,则条件为真。

  5. printf("%d\n", m);:如果条件为真,即当前的 m 是水仙花数,就会使用 printf 函数将该水仙花数打印到标准输出。

  6. m++;:这一行将 m 的值增加1,以检查下一个三位数。

  7. if (m < 1000):这是一个条件语句,检查 m 是否小于 1000,如果是,则继续执行下一次循环。

  8. goto loop;:如果 m 小于 1000,程序会跳转到前面定义的 loop 标签,继续执行从标签处开始的代码块。

  9. return 0;:最后,main 函数返回0,表示程序正常结束。

输出结果:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值