04-0. 求符合給定條件的整數集(15)
給定不超過6的正整數A,考慮從A開始的連續4個數字。請輸出所有由它們組成的無重復數字的3位數。
輸入格式:
輸入在一行中給出A。
輸出格式:
輸出滿足條件的的3位數,要求從小到大,每行6個整數。整數間以空格分隔,但行末不能有多余空格。
輸入樣例:
2
輸出樣例:
234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543
代碼:

#include <stdio.h> int main() { int num,i,j,h; scanf("%d",&num); int count = 0; for(i=num;i<=num+3;i++){ for(j=num;j<=num+3;j++){ for(h=num;h<=num+3;h++){ if(h!=j && i!=j && i!=h){ printf("%d%d%d\t",i,j,h); count +=1; } if (count == 6){ printf("\n"); count = 0; } } } } return 1; }
04-1. 水仙花數(20)
水仙花數是指一個N位正整數(N>=3),它的每個位上的數字的N次冪之和等於它本身。例 如:153 = 13 + 53+ 33。 本題要求編寫程序,計算所有N位水仙花數。
輸入格式:
輸入在一行中給出一個正整數N(3<=N<=7)。
輸出格式:
按遞增順序輸出所有N位水仙花數,每個數字占一行。
輸入樣例:
3
輸出樣例:
153
370
371
407
代碼:

#include <stdio.h> int main() { int n,i,j,s,k,a,b; scanf("%d",&n); int min = 1; int max; for (i=1; i<n; i++){ min *= 10; } max = min * 10 - 1; for (i=min; i<=max; i++){ j = i; s = 0; while ( j!=0 ){ a = j % 10; b = 1; for (k=1;k<=n;k++){ b *= a; } s += b; j = j / 10; } if (i == s){ printf("%d\n",i); } } return 1; }