程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 循環-11. 水仙花數,循環-11水仙花數

循環-11. 水仙花數,循環-11水仙花數

編輯:關於C語言

循環-11. 水仙花數,循環-11水仙花數


 1 /*
 2  * Main.c
 3  * C11-循環-11. 水仙花數
 4  *  Created on: 2014年7月30日
 5  *      Author: Boomkeeper
 6  ******部分通過********
 7  */
 8 
 9 #include <stdio.h>
10 #include <math.h>
11 
12 int N;//同題目中的N
13 
14 void isNarcissus(int i){
15     unsigned int sum=0;
16     int tem=i;
17     //將i各位拆分並計算其N次冪之和
18     do{
19         sum+=pow(i%10,N);
20         i=i/10;
21     }while(i!=0);
22     //如果該N位數各位的N次冪之和等於該數本身,則為水仙花數
23     if(sum==tem)
24         printf("%d\n",tem);
25 }
26 
27 
28 int main(void){
29 
30     scanf("%i",&N);
31 
32     int i;
33     for(i=pow(10,N-1);i<pow(10,N);i++)
34         isNarcissus(i);
35 
36     return 0;
37 }

又沒能完全通過...桑心了...

經檢查,輸入6或者7的時候,返回結果很慢,我會優化算法,回頭補上!

 

題目鏈接:

http://pat.zju.edu.cn/contests/basic-programming/%E5%BE%AA%E7%8E%AF-11


水仙花數 java for循環的問題

水仙花數是指一個n 位數( n≥3 ),它的每個位上的數字的n 次冪之和等於它本身。——這個是它的定義,沒有說為什麼
至於上述的程序,a=i/100 ,因為a為整數,因此取值范圍0-9,取出數字 i 百位上的數字
;int b=i%100/10 ,同理b為整數,i%100後為個位與十位上組成的數,其取值范圍0-99,再/10 取出數字 i 十位上的數字;
最後int c=i%10,取得個位上數字;
根據定義:if(a*a*a+b*b*b+c*c*c==i)判斷每個位上的數字的n 次冪之和等於它本身
 

在計算機中for循環語句,怎水仙花數

#include <stdio.h>

int main(void)
{
int i,j,k;

for (i=1;i<=9;i++)
{
for (j=0;j<=9;j++)
{
for (k=0;k<=9;k++)
{
if (100*i + 10*j + k == i*i*i +j*j*j + k*k*k)
{
printf("%d%d%d\n",i,j,k);
}

}
}
}
return 0;
}
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved