国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

你是真的“C”——求兩個(gè)正數(shù)最小公倍數(shù)的3種境界~

這篇具有很好參考價(jià)值的文章主要介紹了你是真的“C”——求兩個(gè)正數(shù)最小公倍數(shù)的3種境界~。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


c語言兩個(gè)正數(shù)最小公倍數(shù),你是真的“C”,c語言,算法,c++

? ?
博客昵稱:博客小夢(mèng)??
最喜歡的座右銘:全神貫注的上吧!??!
作者簡(jiǎn)介:一名熱愛C/C++,算法等技術(shù)、喜愛運(yùn)動(dòng)、熱愛K歌、敢于追夢(mèng)的小博主!

博主小留言:哈嘍!??各位CSDN的uu們,我是你的博客好友小夢(mèng),希望我的文章可以給您帶來一定的幫助,話不多說,文章推上!歡迎大家在評(píng)論區(qū)嘮嗑指正,覺得好的話別忘了一鍵三連哦!??
c語言兩個(gè)正數(shù)最小公倍數(shù),你是真的“C”,c語言,算法,c++

前言??

? ? 哈嘍各位友友們??,我今天又學(xué)到了很多有趣的知識(shí)現(xiàn)在迫不及待的想和大家分享一下!??我僅已此文,手把手用C語言講解求兩個(gè)正數(shù)最小公倍數(shù)的3種境界!都是精華內(nèi)容,可不要錯(cuò)過喲!?。??????

必備小知識(shí)~??

什么是最小公倍數(shù)和最大公約數(shù)(最大公因數(shù))?

  • 最小公倍數(shù)就是可以整除這兩個(gè)數(shù)的最小的數(shù),例如:6和9的最小公倍數(shù)就是18,3和5的最小公倍數(shù)是15。==也可以說是兩個(gè)數(shù)相乘除以他們的最大公約數(shù)==。
  • 最大公約數(shù)的概念和最小公倍數(shù)正好相反,就是兩個(gè)數(shù)都可以整除的最大的數(shù),如3和5的最大公約數(shù)就是1,而6和9的最大公約數(shù)就是3。

求最小公倍數(shù)境界1~ ??

境界1的算法求解過程分析:

  • 這里的變量count 主要是求其循環(huán)比較的次數(shù),通過這個(gè)可以比較看出三種境界算法的優(yōu)劣性。
  • 先定義一個(gè)count變量存儲(chǔ)這兩個(gè)數(shù)的最大值。
  • 如果滿足 max % a != 0 || max % b != 0,就讓最大值加1,直到有一個(gè)能夠被a和b同時(shí)整除的數(shù)就退出循環(huán),這個(gè)數(shù)就是a和b的最小公倍數(shù)。

境界1源碼: ??

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int count = 0;
	int max = a > b ? a : b;//先找到最大值
	while (max % a !=  0 || max % b != 0)
	{
		max++;
		count++;
	}
	printf("最小公倍數(shù) = %d,比較運(yùn)行的次數(shù) = %d ", max,count);

	return 0;
}

代碼結(jié)果運(yùn)行圖: ??

c語言兩個(gè)正數(shù)最小公倍數(shù),你是真的“C”,c語言,算法,c++可見count = 39204 ,這個(gè)循環(huán)比較次數(shù)為39204,可見其算法效率非常低效。有沒有更好的算法呢?請(qǐng)耐心看下文分析~

求最小公倍數(shù)境界2~ ??

境界2的算法求解過程分析:

  • 這里的變量count 主要是求其循環(huán)比較的次數(shù),通過這個(gè)可以比較看出三種境界算法的優(yōu)劣性。
  • 定義一個(gè)變量i,讓它從1開始,符合條件就自增。一個(gè)數(shù)的i倍,即乘以i其表達(dá)式結(jié)果就是這個(gè)數(shù)倍數(shù),如果可以被另一個(gè)數(shù)整除,說明這個(gè)倍數(shù)就是這兩個(gè)數(shù)的公倍數(shù)。因?yàn)閕是從1開始自增的,所以第一個(gè)滿足這個(gè)條件的一定是這兩個(gè)數(shù)的最小公倍數(shù)啦

境界2源碼: ??

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int i = 1;
	int count = 0;
	while (i*a % b != 0)
	{
		i++;
		count++;
	}
	printf("最小公倍數(shù) = %d,比較運(yùn)行的次數(shù) = %d ",i*a,count);

	return 0;
}

代碼結(jié)果運(yùn)行圖: ??
c語言兩個(gè)正數(shù)最小公倍數(shù),你是真的“C”,c語言,算法,c++
可見count = 1781 ,這個(gè)循環(huán)比較次數(shù)為1781,可見其算法效率比境界一有了明顯的改善!那還有沒有比這個(gè)更好的算法呢?請(qǐng)耐心看下文分析~

求最小公倍數(shù)境界3~ ??

輾轉(zhuǎn)相除法流程圖解

c語言兩個(gè)正數(shù)最小公倍數(shù),你是真的“C”,c語言,算法,c++

境界3源碼: ??

#include <stdio.h>
int main()
{
	int m = 0;
	int n = 0;
	scanf("%d %d", &m, &n);
	int a = m * n;
	int r = 0;
	int count = 0;
	while (r = m % n)
	{
		m = n;
		n = r;
		count++;
	}
	printf("最小公倍數(shù) = %d,比較運(yùn)行的次數(shù) = %d ", a / n, count);

	return 0;
}

代碼結(jié)果運(yùn)行圖: ??

c語言兩個(gè)正數(shù)最小公倍數(shù),你是真的“C”,c語言,算法,c++
可見count = 3 ,這個(gè)循環(huán)比較次數(shù)為3,可見其算法效率真的是太驚人了!,但是這個(gè)算法還是有一個(gè)缺點(diǎn),就是變量 a = m * n。如果這兩個(gè)數(shù)很大,可能它們相乘的結(jié)果太大超出類型的最大數(shù)值。

總結(jié)撒花??

? ?本篇文章旨在帶領(lǐng)大家利用C語言詳解 - 求兩個(gè)正數(shù)最小公倍數(shù)的3種境界。希望大家通過閱讀此文有所收獲!??如果我寫的有什么不好之處,請(qǐng)?jiān)谖恼孪路浇o出你寶貴的意見??。如果覺得我寫的好的話請(qǐng)點(diǎn)個(gè)贊贊和關(guān)注哦~??文章來源地址http://www.zghlxwxcb.cn/news/detail-797736.html

到了這里,關(guān)于你是真的“C”——求兩個(gè)正數(shù)最小公倍數(shù)的3種境界~的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語言--編寫兩個(gè)函數(shù),分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),再主函數(shù)中輸入兩個(gè)整數(shù),調(diào)用它們后輸出結(jié)果。
  • 拿捏--->最小公倍數(shù)

    給定兩個(gè)數(shù),求這兩個(gè)數(shù)的最小公倍數(shù) 例如: 輸入:10 20 輸出:20 最小公倍數(shù)是指兩個(gè)或多個(gè)整數(shù)公有的倍數(shù)中,除0以外最小的一個(gè)公倍數(shù)。 兩數(shù)乘積=最小公倍數(shù)*最大公約數(shù) 在上篇求最大公約數(shù)的四種方法中,我們已經(jīng)能夠求得最大公約數(shù),借此便能求得最小公倍數(shù) 自

    2024年02月14日
    瀏覽(14)
  • Python求最小公倍數(shù)

    Python求最小公倍數(shù)

    最小公倍數(shù) :兩個(gè)或多個(gè)整數(shù)公有的倍數(shù)叫做它們的公倍數(shù),其中除0以外最小的一個(gè)公倍數(shù)就叫做這幾個(gè)整數(shù)的最小公倍數(shù)。整數(shù)a,b的最小公倍數(shù)記為[a,b],同樣的,a,b,c的最小公倍數(shù)記為[a,b,c],多個(gè)整數(shù)的最小公倍數(shù)也有同樣的記號(hào)。 利用 Python 求最小公倍數(shù)(

    2024年02月06日
    瀏覽(17)
  • 809. 最小公倍數(shù)

    809. 最小公倍數(shù)

    鏈接: 鏈接 題目: 輸入兩個(gè)整數(shù)?aa?和?bb,請(qǐng)你編寫一個(gè)函數(shù), int lcm(int a, int b) ,計(jì)算并輸出?aa?和?bb?的最小公倍數(shù)。 輸入格式 共一行,包含兩個(gè)整數(shù)?aa?和?bb。 輸出格式 共一行,包含一個(gè)整數(shù),表示?aa?和?bb?的最小公倍數(shù)。 數(shù)據(jù)范圍 1≤a,b≤10001≤a,b≤1000 輸入

    2024年02月13日
    瀏覽(16)
  • 最大公約數(shù)和最小公倍數(shù)問題

    等差數(shù)列 藍(lán)橋杯192 gcd問題 題目描述 數(shù)學(xué)老師給小明出了一道等差數(shù)列求和的題目。但是粗心的小明忘記了一 部分的數(shù)列,只記得其中?N?個(gè)整數(shù)。 現(xiàn)在給出這?N?個(gè)整數(shù),小明想知道包含這?N?個(gè)整數(shù)的最短的等差數(shù)列有幾項(xiàng)? 思路:求出每一項(xiàng)之差的最大公約數(shù),以這個(gè)

    2023年04月09日
    瀏覽(23)
  • 最小公倍數(shù)Python——三種方法

    最小公倍數(shù) = 兩數(shù)的乘積 / 最大公約數(shù) 這種方法的實(shí)現(xiàn)原理是求兩個(gè)正整數(shù)的余數(shù) r ,再用兩個(gè)正整數(shù)中的較小數(shù)與其再求余直到余數(shù)為 0 時(shí),此時(shí)的較小數(shù)就是最大公約數(shù)。最后利用公式計(jì)算得到這兩個(gè)數(shù)的最小公倍數(shù)。 代碼示例: 這種方法比較易于理解,原理是先判斷

    2024年04月14日
    瀏覽(26)
  • C++ 最大公約數(shù)與最小公倍數(shù)

    C++ 最大公約數(shù)與最小公倍數(shù)

    (一)簡(jiǎn)單的兩個(gè)正整數(shù)? 求 最大公約數(shù) (引入專題) 思路: 根據(jù) “歐幾里得算法”? ,即 “輾轉(zhuǎn)相除法” 原理如下: 題意: 求出? ?a? , b? 兩個(gè)正整數(shù)的最大公約數(shù) 設(shè)? k = a / b,? ?r = a % b 即? ? a = k * b + r 又設(shè)? d? 為 a 和 b 的一個(gè)公約數(shù) 那么由? r = a - k * b,? 可

    2024年02月06日
    瀏覽(17)
  • HJ108:求最小公倍數(shù) python

    def gcd(a,b): ? ? if ab: ? ? ? ? smaller=a ? ? else: ? ? ? ? smaller=b ? ? for i in range(smaller,0,-1): ? ? ? ? if a%i==0 and b%i==0: ? ? ? ? ? ? return smaller ? ? ? ? else: ? ? ? ? ? ? smaller-=1 def lcm1(a,b): ? ? g=gcd(a,b) ? ? return a*b/g 跑不出結(jié)果,求指教哪里出問題

    2023年04月09日
    瀏覽(19)
  • C語言—最大公約數(shù)和最小公倍數(shù)

    C語言—最大公約數(shù)和最小公倍數(shù)

    作者主頁: paper jie的博客_CSDN博客-C語言,算法詳解領(lǐng)域博主 本文作者: 大家好,我是paper jie,感謝你閱讀本文,歡迎一建三連哦。 本文錄入于 《算法詳解》專欄,本專欄是針對(duì)于大學(xué)生,編程小白精心打造的。筆者用重金(時(shí)間和精力)打造,將算法基礎(chǔ)知識(shí)一網(wǎng)打盡,希望

    2024年02月13日
    瀏覽(22)
  • 【C語言】求最大公約數(shù)和最小公倍數(shù)

    【C語言】求最大公約數(shù)和最小公倍數(shù)

    方法一:利用 定義法 求最大公因數(shù)和最小公倍數(shù) 方法二:最小公倍數(shù)求法同上, 最大公約數(shù)方法不同 方法一方法二的結(jié)果示例如下 ? 方法三:利用 輾轉(zhuǎn)相除法 求最大公約數(shù)和最小公倍數(shù) 法(1)結(jié)果示例如下: ?法(2)示例結(jié)果如下: ?以上就是用C語言循環(huán)和循環(huán)之前的

    2024年02月07日
    瀏覽(87)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包