1. 程式人生 > >C語言 求出100~999之間的所有“水仙花數”並輸出

C語言 求出100~999之間的所有“水仙花數”並輸出

    “水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153153?,則153是一個“水仙花數”。在數論中,水仙花數(Narcissistic number)也稱為自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),是指一N位數,其各個數之N次方和等於該數。

例如153370371407就是三位數的水仙花數,其各個數之立方和等於該數:

153 = 1^3 + 5^3 + 3^3

370 = 3^3 + 7^3 + 0^3

371 = 3^3 + 7^3 + 1^3

407 = 4^3 + 0^3 + 7^3

程式碼如下:

#include<stdio.h>
int main()
{
	int num,i,j,k;
	printf("0到999之間的所有水仙花數:");
	for(num=100;num<1000;num++)
	{
	    i=num/100;/*求出百位數*/
	    j=num/10-i*10;/*求出十位數*/
	    k=num-i*100-j*10;/*求出個位數*/
	    if(i*i*i+j*j*j+k*k*k==num)
	    {
	    	printf("%d ",num);
	    }
	}
	return 0;
}

上述方法求出一個數的每位數較麻煩,利用for迴圈對此進行改進。

程式碼如下:

#include<stdio.h>
#include<math.h>
int main()
{
	int i;
	double sum;
	printf("輸出0到999之間的所有水仙花數:\n");
	for(i=100;i<1000;i++)
	{/*不可在迴圈體內修改迴圈變數,防止for迴圈失去控制*/
		int num=i;/*引入變數num*/
		for(sum=0;num!=0;num/=10)
		{  
			sum+=pow(num%10,3);
		}
		if(sum==i)/*sum應與i比較,不是引入的變數num*/
		{
			printf("%d ",i);
		}
	}
	return 0;
}

相關推薦

C語言 100999之間所有水仙花輸出

    “水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。在數論中,水仙花數(Narcissistic number)也稱為自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),是指一

C語言0999之間所有水仙花輸出

執行環境: win10  vs2013 “水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。  在數論中,水仙花數(Narcissis

c語言 0-999之間水仙花輸出

求出0~999之間的所有“水仙花數”並輸出。 “水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。 /* 在數論中,水仙花數(Narcissistic number)也稱為自戀數、自冪數、阿姆斯壯

c/c++_找100到200之間的全部素數輸出

/* * Copyright (c) 2011, 煙臺大學計算機學院 * All rights reserved. * 作 者:解曉東 * 完成日期:2012 年 10 月 2

c語言 3種方法 0999之間所有 水仙花 輸出

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

.0999之間所有水仙花輸出

求出0~999之間的所有“水仙花數”並輸出。 “水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。 /* 在數論中,水仙花數(Narcissi #include <stdio.h> #include <stdli

2.0999之間所有水仙花輸出

水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。 /* 在數論中,水仙花數(Narcissistic number)也稱為自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong num

1.0999之間所有水仙花輸出。“水仙花”是指一個三位數,其各位數字的立方和確好等於該本身,如;153=1+5+3?,則153是一個“水仙花”。

1.在螢幕上輸出以下圖案: * *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** * 2.求出0~

C語言字串中的特定的字元,輸出

這裡我們用到了函式 strchr 這個函式返回值是一個指標 函式引數是 一個字串和一個字元。 #include <stdio.h> #include<string.h> void main() { char str[80]; char c

Python-三種方法100-999之間水仙花

題目:算出100-999之間的水仙花數 水仙花數是指百位的3次方 + 十位的3次方 + 個位的三次方等於原數的整數 方法一:將數字轉換為字串,用索引獲取百位十位個位數字 for i in range(100,1000): s=str(i) if int(s[0])*

C語言陣列中的最大值和次大值!

#include<stdio.h> //改陣列大小隻需要修改 N後面的數字 #define N 5 int main(void){ int arr[N]={5,6,8,3,9}; int max= 0; //定義最大值並賦值 int mid= 0

poj3615 給你一個有向圖,然後對於特定的點A與B,要你A到B之間所有可行路徑的單段路距離最大值的最小值.

#include<cstdio> #include<algorithm> #define INF 1e9 using namespace std; const int maxn = 300+10; int n,m,t; int d[maxn][maxn]; void floy

poj3615 給你一個有向圖,然後對於特定的點A與B,要你A到B之間所有可行路徑的單段路距離最大值的最小值.

#include<cstdio> #include<algorithm> #define INF 1e9 using namespace std; const int maxn = 300+10; int n,m,t; int d[maxn][maxn

用java寫程式打印100到200之間所有的素數

解決思路: 1,定義一個類,名字為TestPrimeNumber。 2,在類中定義主函式。 3,用for迴圈打印出所有在100至200之間的數字。 4,在for迴圈中,判斷每當迴圈執行一次,就判斷迴圈變數的值是否為素數,如果是,就把迴圈變數的當前值大於出來。 5,比如一個數

程式設計實現輸入n,1到n之間所有的質數

#include<stdio.h>#include<math.h>int main(){    int i,j,k,m,n=0;    printf("請輸入你想求出可能質數的最

python練習2 計算100-999之間水仙花

如果一個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一個水仙花數,求100~999之間的水仙花數 我的答案1 #!/u

定義一個二維陣列,內容為三個學生的四門課成績,每個學生四門課的平均分輸出,再每門課三個學生的平均分輸出

// 121211 作業1.cpp : 定義控制檯應用程式的入口點。 // /* * Copyright (c) 2012, 煙臺大學計算機學院 * All rights reserved. * 作 者: 劉同賓

C語言 1. switch語句的使用2.輸出菱形3..0~999之間所有水仙花“,輸出

浮點型和零相比? #define EXP 0.000000……1 在不同作業系統下程式碼結果可能不一樣,所以定義一個精度 switch語句的使用: int main() { int day=0; scanf("%d",&day); switch(d

C語言輸出100~999之間所有水仙花

  “水仙花數”:   “水仙花數”又稱為“阿姆斯特朗數”。如果一個n(n≥3)位數的各位數字的n次冪之和等於該數本身,則該數稱為“水仙花數”。如:153=1³+5³+3³。   問題:輸出100~999之間的所有“水仙花數”。   實現思路:   根據