1. 程式人生 > >【程式13】 題目:打印出所有的“水仙花數”

【程式13】 題目:打印出所有的“水仙花數”

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
/*
題目:打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等於該數 本身。例如:153是一個“水仙花數”,因為153 = 1的三次方+5的三次方+3的三次方。
【分析】
1 要取出各位數
2 判斷各位數的立方是否與該數相等
*/
int main(int argc, int **argv){
	int ge = 0, shi = 0, bai = 0;
	int num = 0;
	for (num = 100; num < 1000; num++)
	{
		bai = num / 100;
		shi = (num / 10)  % 10;
		ge = num % 10;

		if (num == (ge*ge*ge + shi*shi*shi + bai*bai*bai))
		{
			printf("%-6d", num);
		}
	}
	return 0;
}

取數總結:(以四位數為例)

最低位 = num  % 1000

最高位 = num / 1000

中間位先除再取餘

十位 = num / 10 %10

百位 = num / 100 %10