交換數值 氣泡排序 最大公約數與素數

2021-09-25 07:33:17 字數 1432 閱讀 4654

現有兩個值,要求不引入第三個變數的方法來交換兩個數

思路:兩個數相加之後再去減掉另乙個值

實現方法:

#include//交換兩個變數的值(不引入第三個變數)

int main()

現有三(可以任意多個,這裡只列舉三個)個數,要求從大到小排序並輸出

思路:讓每乙個數和相鄰的數去比較,將最大的放在第一位,然後再比較,次大的數放在第二位…

實現方法:

#include//三個數從大到小輸出

int main()

; for (j = 0; j <= 2; j++)

} }for (i = 0; i <= 2; i++)

}

現有兩個數,求這兩個數的最大公約數

思路:先得到兩個數,將大的數放在a中,小的放在b中,然後用乙個for迴圈,令c=b,用a和b分別去除以c取餘,每次都去c–,當a和b除c取餘第一次同時為0的時候跳出for迴圈,輸出c,c就是最大的公約數

實現方法:

#include//求兩個數的最大公約數

int main()

for (c = b; c > 0; c--)

} printf("最大公約數是%d", c);

}

求100——200之間的素數

思路:第一種是一種遍歷的方法

#include//試除法

int main()

} if(j == i) //是素數

}printf("count == %d\n",count);

return 0;

}

第二種是只遍歷一半之後的演算法

#includeint main()

} if(j > i/2) //是素數

}printf("count == %d\n",count);

return 0;

}

第三種採用開根號的方法,在上一步遍歷一半的基礎上再簡化

#includeint main()

} if(j > sqrt((double)i)) //是素數

}printf("count == %d\n",count);

return 0;

}

第四種是最終版,在開根號的基礎上再進行簡化,由於偶數肯定不是素數,所以在開根號的數中我們只需要對偶數進行遍歷便可以得到最簡化的演算法

#includeint main()

} if(j > sqrt((double)i)) //是素數

}printf("count == %d\n",count);

return 0;

}

最大公約數

1.執行最大公約數的常用演算法,並新增異常處理模組 如輸入非法等 在基礎程式的基礎上,可以考慮手動輸入所有數字或者利用隨機數產生數字,分別加入異常處理模組。注 隨機數的產生方法 srand 的作用是提供乙個種子。然後呼叫rand 其格式為int rand void 它會根據提供給srand 的種子值...

最大公約數

最大公因數 greatest common divisor 也稱最大公約數 最大公因子,指兩個或多個整數共有約數中最大的乙個。a,b的最大公約數記為 a,b 同樣的,a,b,c的最大公約數記為 a,b,c 多個整數的最大公約數也有同樣的記號。求最大公約數有多種方法,常見的有質因數分解法 短除法 輾轉...

最大公約數

求兩數的最大公約數 簡單嗎?簡單!用多種方法求,可以嗎?emmmmm.應該可以吧?相信絕大多數人都知道求最大公約數的如下 所示的這種方法 include includeint commondivisor int x,int y min return min int main 先判斷兩個數的大小,將較...