我們看到這一題最先想到的是什么方法??
創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務公司,擁有項目網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鹽津做網(wǎng)站,已為上家服務,為鹽津各地企業(yè)和個人服務,聯(lián)系電話:18980820575我想十有八九想到的都是暴力枚舉的方法:先把全部的數(shù)字相乘,再從1開始枚舉一直到有一個最小的數(shù)可以整除所有的數(shù)字。但作為上進的程序員,我們肯定會不禁想:這是啥啊,怎么這么拉啊。
所以我們才在這里遇見,尋求不拉的方法
那么在這里,我介紹的是用數(shù)學規(guī)律的解法:
關(guān)鍵思路:
1:兩個數(shù)的最小公倍數(shù)等于兩個數(shù)的乘積再除與兩個數(shù)的大公因數(shù)
2:重復使用輾轉(zhuǎn)相除法得到大的公因數(shù)(注意大小的先后問題,若是小的在前則要交換,故要先判斷大?。?br />3:多個數(shù)的最小公倍數(shù)可以利用前面兩個數(shù)的最小公倍數(shù)與下一個數(shù)求最小公倍數(shù),如此直到最后一個數(shù),便得到了多個數(shù)的最小公倍數(shù)
4:為了避免溢出,第一步不妨先用一個數(shù)除與大公因數(shù)再乘于另一個數(shù)
#includeint main()
{int n,inset,o,p;
int temp,temp1;
while(scanf("%d",&n)!=EOF)
{scanf("%d",&temp);
for(int i=0;iscanf("%d",&temp1);
if(temp inset=temp;
temp=temp1;
temp1=inset;
}
o=temp;p=temp1;
while(o%p!=0)
{ inset=o%p;
o=p;
p=inset;
}
temp=temp/p*temp1;//避免了溢出
}
printf("%d\n",temp);
}
return 0;}
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁標題:杭電OJ2028最小的公倍數(shù)之和C語言版-創(chuàng)新互聯(lián)
當前地址:http://m.rwnh.cn/article0/hcsoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、Google、建站公司、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容