中國大學MOOC-翁愷-C語言程序設計習題集(二)


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-0.c

 

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;
}
04-01.c

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM