天天看點

ACMNO.22 C語言-公約公倍2 寫兩個函數,分别求兩個整數的最大公約數和最小公倍數,用主函數調用這兩個函數,并輸出結果兩個整數由鍵盤輸入。 輸入 兩個數 輸出 最大公約數 最小公倍數

題目描述

寫兩個函數,分别求兩個整數的最大公約數和最小公倍數,
用主函數調用這兩個函數,并輸出結果兩個整數由鍵盤輸入。      

輸入

兩個數      

輸出

最大公約數 最小公倍數      

樣例輸入

6 15      

樣例輸出

3 30      

分類

C語言       

題目截圖:

ACMNO.22 C語言-公約公倍2 寫兩個函數,分别求兩個整數的最大公約數和最小公倍數,用主函數調用這兩個函數,并輸出結果兩個整數由鍵盤輸入。 輸入 兩個數 輸出 最大公約數 最小公倍數

思路:

求最大的:
進行%運算,是以不能先從1,0開始必須從2直接開始!
然後,進行比較。把最小的數指派給參與運算的數!
滿足這個條件:if(a%i==0&&b%i==0)
就直接break,結束循環!
int max(int a,int b)
  {
    //cout<<"max";
    int s;s=i=2;
    //cout<<s<<endl;
    if(a>b)
    {
      i=b;
    }
    else
      i=a;
    do{
    if(a%i==0&&b%i==0)
    {
      //cout<<"do 裡面的s!"<<s<<endl;
      //cout<<"do 裡面的i!"<<i<<endl;
      s=i;
      break;
    }
    i--;
    }while(i<a&&i<b);
      //cout<<"end的s!"<<s<<endl;
      //cout<<"end的i!"<<i<<endl;
      return s;
  }
求最小的:
思路跟之前的類似!
這個隻需要從2開始進行尋找就好啦!
同樣滿足這個條件就會結束循環!不過誰被%就發生變化啦! if(i%a==0&&i%b==0)
int min(int a,int b)
{
  //cout<<"min";
  int s;s=1;i=2;
  do{
  if(i%a==0&&i%b==0)
  {
      //cout<<"do 裡面的s!"<<s<<endl;
      //cout<<"do 裡面的i!"<<i<<endl;
    s=i;break;
  }
  i++;
  }while(i<=a*b);
      //cout<<"end的s!"<<s<<endl;
      //cout<<"end的i!"<<i<<endl;
  return s;
}      

代碼:

#include<iostream>
using namespace std;
int i;
int max(int a,int b)
  {
    //cout<<"max";
    int s;s=i=2;
    //cout<<s<<endl;
    if(a>b)
    {
      i=b;
    }
    else
      i=a;
    do{
    if(a%i==0&&b%i==0)
    {
      //cout<<"do 裡面的s!"<<s<<endl;
      //cout<<"do 裡面的i!"<<i<<endl;
      s=i;
      break;
    }
    i--;
    }while(i<a&&i<b);
      //cout<<"end的s!"<<s<<endl;
      //cout<<"end的i!"<<i<<endl;
      return s;
  }
int min(int a,int b)
{
  //cout<<"min";
  int s;s=1;i=2;
  do{
  if(i%a==0&&i%b==0)
  {
      //cout<<"do 裡面的s!"<<s<<endl;
      //cout<<"do 裡面的i!"<<i<<endl;
    s=i;break;
  }
  i++;
  }while(i<=a*b);
      //cout<<"end的s!"<<s<<endl;
      //cout<<"end的i!"<<i<<endl;
  return s;
}
int main()
{
  int x,y,m,n;
  cin>>x>>y;
  m=max(x,y);n=min(x,y);
  cout<<m<<" "<<n;
}      

代碼截圖:

ACMNO.22 C語言-公約公倍2 寫兩個函數,分别求兩個整數的最大公約數和最小公倍數,用主函數調用這兩個函數,并輸出結果兩個整數由鍵盤輸入。 輸入 兩個數 輸出 最大公約數 最小公倍數

運作結果:

ACMNO.22 C語言-公約公倍2 寫兩個函數,分别求兩個整數的最大公約數和最小公倍數,用主函數調用這兩個函數,并輸出結果兩個整數由鍵盤輸入。 輸入 兩個數 輸出 最大公約數 最小公倍數