水仙花数(小白入门)

#输出100-999中所有水仙花数,若三位数ABC=A*A*A+B*B*B+C*C*C,则为水仙花数#

#例子:153=1*1*1+5*5*5+3*3*3(即三个位数的立方和)

思路:

关键是取位的思想:可以令a,b,c分别表示百位数,十位数,个位数。

如何进行取位?用整除(/)和取余(%)就可以完成。

先从个位数c来,例如三位数123要取个位数3,直接对10取余就得到剩下的3了(123%10)

可以补充一下整除和取余的概念:

整除,忽略余数。如13/4,是不是3个4被除掉还剩下1呢,那么整除结果就为3,取余结果就为1。

所以可以简单认为整除就是取整。

取余,即取余数,剩下多少。

明白了取整与取余的概念,剩下的十位百位则不在话下了:

十位b:123/10-->变成12,又变得像取个位数-->12%10-->取出十位数2

百位a:   123/100-->取出百位数1

(注意的是,不宜把/和%多少当做规律背诵,按照解决问题的思路出发思考,才快准狠)

例如:取四位数的百分位数,即1234中的2,该怎么取呢?可以试一试。

接下来,取位完成后我们只需要循环遍历100-999的三位数就OK啦:具体代码为:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int shuixianhua() {
	int i=100;
	for (i = 100; i < 1000; i++) {
		int a = i / 100; int  b = i / 10 % 10 ;int  c = i % 10;//a,b,c分别表示百十个
		if (i == a*a*a + b*b*b + c*c*c) {   //    =是赋值,一般在if语句中特别注意是==
			printf(" %d ", i);
		}
	}
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值