I00024 出錢買羽

2021-07-13 10:08:30 字數 2622 閱讀 3937

《九章算術》屬於算經十書中的一部,是中國古典數學專著。這些經典數學專著中,有許多眾所周知的問題。現在是計算機無所不在的時代,那些問題與其用數學方法來解,不如用電腦程式來解。這個時代是計算解決問題的時代。

《九章算術》卷第二 粟公尺的四十五題和四十六題如下:

〔四五〕今有出錢六百二十,買羽二千一百翭。欲其貴賤率之,問各幾何?答曰:其一千一百四十翭,三翭一錢。其九百六十翭,四翭一錢。

〔四六〕今有出錢九百八十,買矢簳五千八百二十枚。欲其貴賤率之,問各幾何?答曰:其三百枚,五枚一錢。其五千五百二十枚,六枚一錢。

仔細閱讀可以知道,這兩個問題幾乎是同一型別的,可以用同乙個程式來解。

這兩個問題,已知的是錢多少,買了多少東西。所買的東西分貴和賤兩種,需要求的是貴和賤的東西各買了多少,其**各為多少。給2個數,需要求4個數。另外一點,需要假設古代的錢是比較值錢的,1錢可以買多個物品。再一點是,經過試算,錢如果太值錢則可行解就太多了,於是假定1錢最多買10個物品。

窮舉法在這個問題中是非常適用的。貴的物品所用錢數從1錢(迴圈變數i)開始試算,那麼賤的物品所用錢數=所有錢數-貴的物品錢數。貴的物品**從1開始試到10(迴圈變數j),賤的物品**從j+1開始試到10(迴圈變數k),滿足j

程式如下:

/*

* 今有出錢六百二十,買羽二千一百翭。欲其貴賤率之,問各幾何?答曰:其一千一百四十翭,三翭一錢。其九百六十翭,四翭一錢。

* * 今有出錢九百八十,買矢簳五千八百二十枚。欲其貴賤率之,問各幾何?答曰:其三百枚,五枚一錢。其五千五百二十枚,六枚一錢。

* * 這兩個問題出自《九章算術》卷第二粟公尺的四十五題和四十六題。

*/#include #define max_price 10

int main(void)}}

}return 0;

}

輸入兩組資料,一是620和2100,二是980和5820,程式執行結果如下:

620 2100

380  2  1720  4 380+1720=2100 380/2+1720/4=620

250  1  1850  5 250+1850=2100 250/1+1850/5=620

324  1  1776  6 324+1776=2100 324/1+1776/6=620

1140  3   960  4 1140+960=2100 1140/3+960/4=620

810  2  1290  6 810+1290=2100 810/2+1290/6=620

435  1  1665  9 435+1665=2100 435/1+1665/9=620

896  2  1204  7 896+1204=2100 896/2+1204/7=620

1500  3   600  5 1500+600=2100 1500/3+600/5=620

1620  3   480  6 1620+480=2100 1620/3+480/6=620

1680  3   420  7 1680+420=2100 1680/3+420/7=620

1716  3   384  8 1716+384=2100 1716/3+384/8=620

1740  3   360  9 1740+360=2100 1740/3+360/9=620

980 5820

12  1  5808  6 12+5808=5820 12/1+5808/6=980

30  2  5790  6 30+5790=5820 30/2+5790/6=980

60  3  5760  6 60+5760=5820 60/3+5760/6=980

120  4  5700  6 120+5700=5820 120/4+5700/6=980

300  5  5520  6 300+5520=5820 300/5+5520/6=980

416  2  5404  7 416+5404=5820 416/2+5404/7=980

780  3  5040  7 780+5040=5820 780/3+5040/7=980

375  1  5445  9 375+5445=5820 375/1+5445/9=980

1212  3  4608  8 1212+4608=5820 1212/3+4608/8=980

1500  3  4320  9 1500+4320=5820 1500/3+4320/9=980

2020  4  3800  8 2020+3800=5820 2020/4+3800/8=980

2600  5  3220  7 2600+3220=5820 2600/5+3220/7=980

2400  4  3420  9 2400+3420=5820 2400/4+3420/9=980

3750  5  2070  9 3750+2070=5820 3750/5+2070/9=980

3980  5  1840 10 3980+1840=5820 3980/5+1840/10=980

《九章算術》卷第二 粟公尺的四十五題和四十六題給出的解也在上述結果中。

然而,程式計算出的可行解遠多於1個,這是假定1錢最多買10個物品條件下得到的結果。 

hihoCoder 1481 出勤記錄I

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 小hi的演算法課老師每次上課都會統計小hi的出勤記錄。遲到會被記錄乙個l,缺席會被記錄乙個a,按時上課會被記錄乙個o。一學期結束,小hi的出勤記錄可以看成是乙個只包含lao的字串,例如 oooolooolallo 如果小hi整...

長城汽車王者之風盡顯,「I紀元」動力總成出盡風頭

近幾年的長城汽車可謂是風光無限,除了成長為銷量百萬的巨型車企之外,其自主研發能力也得到了國內外使用者的一致認可,堅持的 過度投入 方略初見成效。尤其是旗下的 i紀元 幾款動力總成佔據了銷量的半壁江山,讓長城汽車的王者之風盡顯。除之此外長城 i紀元 動力總成技術其他產品市場表現也同樣更為不凡,並逐步向...