返回列表 發帖

[12/14 作業2]遞迴求最大公因數



試以遞迴的架構實作 求最大公因數 (輾轉相除法)
May

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n(int a,int b)
  4. {
  5.         if(a%b==0)
  6.             return b;
  7.         else
  8.             return n(b,a%b);
  9. }
  10. int main()
  11. {
  12.     int a,b;
  13.     cin>>a>>b;
  14.     cout<<"請依序輸入兩個正整數:"<<endl;
  15.     cout<<a<<"與"<<b<<"的最大公因數為:"<<n(a,b)<<endl;
  16.     return 0;
  17. }
複製代碼

TOP

本帖最後由 孫苡瑄 於 2024-12-21 15:45 編輯
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n(int a,int b)
  4. {
  5.         if(a%b==0)
  6.             return b;
  7.         else
  8.             return n(b,a%b);
  9. }
  10. int main()
  11. {
  12.     int a,b;
  13.     cin>>a>>b;
  14.     cout<<"請依序輸入兩個正整數:"<<endl;
  15.     cout<<a<<"與"<<b<<"的最大公因數為:"<<n(a,b)<<endl;
  16.     return 0;
  17. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int sum(int a,int b)
  4. {
  5.     if(a%b==0)
  6.        return b;
  7.     else
  8.        return sum(b,a%b);
  9. }
  10. int main()
  11. {
  12.     int a,b;
  13.     cout<<"請依序輸入兩個正整數:";
  14.     cin>>a>>b;
  15.     cout<<a<<"與"<<b<<"的最大公因數為:"<<sum(a,b)<<endl;
  16.     return 0;
  17. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n(int a,int b)
  4. {
  5.         if(a%b==0)
  6.             return b;
  7.         else
  8.             return n(b,a%b);
  9. }
  10. int main()
  11. {
  12.     int a,b;
  13.     cout<<"請依序輸入兩個正整數:"<<endl;
  14.     cin>>a>>b;
  15.     cout<<a<<"與"<<b<<"的最大公因數為:"<<n(a,b)<<endl;
  16.     return 0;

  17. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n(int a,int b)
  4. {
  5.         if(a%b==0)
  6.             return b;
  7.         else
  8.             return n(b,a%b);
  9. }
  10. int main()
  11. {
  12.     int a,b;
  13.     cin>>a>>b;
  14.     cout<<"請依序輸入兩個正整數:"<<endl;
  15.     cout<<a<<"與"<<b<<"的最大公因數為:"<<n(a,b)<<endl;
  16.     return 0;
  17. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int Ed(int x,int y)
  4. {
  5.         if(x%y==0)
  6.             return y;
  7.         else
  8.             return Ed(y,x%y);
  9. }
  10. int main()
  11. {
  12.     int x,y;
  13.     cout<<"請依序輸入兩個正整數:"<<endl;
  14.     cin>>x>>y;
  15.     cout<<x<<","<<y<<"的最大公因數是"<<Ed(x,y)<<endl;
  16.     return 0;
  17. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n(int a,int b)
  4. {
  5.         if(a%b==0)
  6.             return b;
  7.         else
  8.             return n(b,a%b);
  9. }
  10. int main()
  11. {
  12. re:
  13.     int a,b;
  14.     cout<<"請依序輸入兩個正整數:";
  15.     cin>>a>>b;
  16.     cout<<a<<"與"<<b<<"的最大公因數為:"<<n(a,b)<<endl<<endl;
  17.     goto re;
  18.     return 0;
  19. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n(int x,int y)
  4. {
  5.         if(x%y==0)
  6.             return y;
  7.         else
  8.             return n(y,x%y);
  9. }
  10. int main()
  11. {
  12.     int x,y;
  13.     cin>>x>>y;
  14.     cout<<"請依序輸入兩個正整數:"<<endl;
  15.     cout<<x<<"與"<<y<<"的最大公因數為:"<<n(x,y)<<endl;
  16.     return 0;
  17. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int w(int x, int y){
  4.          if(x%y==0)
  5.             return y;
  6.         else
  7.             return w(y,x%y);
  8. }
  9. int main()
  10. {
  11.         int x,y;
  12.         cout<<"請依序輸入兩個正整數: ";
  13.         cin>>x>>y;
  14.         cout<<x<<"與"<<y<<"的最大公因數為: "<<w(x,y)<<endl;
  15.         return 0;
  16. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int c(int a,int b)
  4. {
  5.         if(a%b==0)
  6.             return b;
  7.         else
  8.             return c(b,a%b);
  9. }
  10. int main()
  11. {
  12.     int a,b;
  13.     cin>>a>>b;
  14.     cout<<"請依序輸入兩個正整數:"<<endl;
  15.     cout<<a<<"與"<<b<<"的最大公因數為:"<<c(a,b)<<endl;
  16.     return 0;
  17. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n(int a,int b)
  4. {
  5.         if(a%b==0)
  6.         return b;
  7.         else
  8.         return n(b,a%b);
  9. }
  10. int main()
  11. {
  12.         int a,b;
  13.         cin>>a>>b;
  14.         cout<<"請依序輸入兩個正整數:"<<endl;
  15.         cout<<a<<"與"<<b<<"的最大公因數為:"<<n(a,b)<<endl;
  16.         return 0;
  17. }
複製代碼

TOP

返回列表