C语言程序设计100道真题-打印的“水仙花数“

题目

打印出所有的"水仙花数",水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

实现的思路

  1. 遍历所有三位数(100到999)。
  2. 提取每个三位数的个位、十位、百位数字。
  3. 计算这三个数字的立方和。
  4. 判断这个立方和是否等于原数。
  5. 如果等于,则打印该数。

代码(包含解析)

#include <stdio.h>   
  
int main(){  
	int i, j, g, x, b;  
	  
	// 遍历所有三位数  
	for(i=100; i<1000; i++){  
		// 提取个位数字  
		g = i % 10;  
		// 提取十位数字,先取后两位再除以10  
		x = (i % 100) / 10;  
		// 提取百位数字,直接整除100  
		b = i / 100;  
		  
		// 计算各位数字的立方和  
		if(g*g*g + x*x*x + b*b*b == i) {  
			// 如果立方和等于原数,则打印  
			printf("%d\n", i);  
		}  
	}  
	  
	return 0;  
}

代码解读

  • 首先,我们包含了stdio.h头文件,以便使用printf函数。
  • main函数中,我们定义了五个整型变量:i用于遍历所有三位数,j(虽然未使用,可以移除),g用于存储个位数字,x用于存储十位数字,b用于存储百位数字。
  • 使用for循环遍历所有三位数,从100到999。
  • 在循环内部,通过取余和整除操作,我们提取出每一位的数字。
  • 计算这三个数字的立方和,并判断其是否等于原数i
  • 如果等于,则使用printf函数打印该数。
  • 最后,main函数返回0,表示程序正常结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值