【C語言教學手冊(四版)-練習題解答】

 第8章

C語言教學手冊(四版)-博客來網址

      8.3 撰寫第一個 C 程式語言-孫子算經

 

在《孫子算經》裡(共三卷,據推測約成書於西元400年左右),下卷的第26題,就是鼎鼎有名的「孫子問題」

今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,問物幾何?

將它翻譯成白話:這裡有一堆東西,不知道有幾個;三個三個去數它們,剩餘二個;五個五個去數它們,剩餘三個;七個七個去數它們,剩餘二個;問這堆東西有幾個?精簡一點來說:有一個數,用 3 除之餘 2;用 5 除之餘 3;用 7 除之餘 2;試求此數。

 

(a) 試找出滿足孫子問題裡的最小整數.

(b) 試撰寫一函數 int fund(int n), 可以傳回滿足孫子問題裡的第 n 個整數, 然後利用此函數找出滿足孫子問題的第 5個與第 7個整數.

(c) 試利用 (b) 所定義的函數找出前 12個滿足孫子問題的整數.

 

 

(a)

#include <stdio.h> 
int find(int); 
int main() 

    int i=0; 
    do 
    { 
        i++; 
    }        
    while( !find(i) ); 
    printf("%d\n",i); 

}

int find(int n) 

    if((n%3==2) && (n%5==3) && (n%7==2)) 
        return 1; 
       return 0; 
}

(b)

#include <stdio.h>

int find(int n);

int main()

{

    int n;

    printf("find(5)=%d\n",find(5));

    printf("find(7)=%d\n",find(7));

}

int find(n)

{

    int a=0, i=0;

    while(i<n)

    {

        a+=1;

        if((a%3==2) && (a%5==3) && (a%7==2))

            i+=1;   

    }

    return a;

}

(c)

#include <stdio.h>

int find(int n);

int main()

{

    int i;

    for(i=1;i<=12;i++)

        printf("find(%d)=%d\n",i,find(i));

}

int find(n)

{

    int a=0, i=0;

    while(i<n)

    {

        a+=1;

        if((a%3==2) && (a%5==3) && (a%7==2))

            i+=1 ;   

    }

    return a ;

}

 

 


 

(不好意思小宣傳一下我的繪圖 希望大家喜歡)

 

\\

這是我的海苔貓粉專

www.facebook.com/norinekocat/

 

海苔貓IG

海苔貓Instagram

 

謝謝大家:))

裡面有許多繪圖作品~ 希望大家支持我會繼續努力

請多多指教哦

 

 

ps

p新的貼圖終於出來了💜💜💜可愛的海苔貓-第三代

 

海苔貓繪圖作品\\

希望大家支持~~

arrow
arrow
    文章標籤
    C語言 第8章 孫子算經
    全站熱搜

    海苔貓Nori 發表在 痞客邦 留言(0) 人氣()