經典算法詳解(7)丟番圖的墓志銘


丟番圖的一生1/6是童年,青少年時代占了他一生的1/12,隨后1/7他說過着獨身的生活,結婚后5年他生了一個兒子,他感到很幸福,可是這孩子的生命只有他父親的一半,兒子去世后,丟番圖就在深深痛苦中活了4年,結束了生命,請問丟番圖活了多少歲?丟番圖的一生1/6是童年,青少年時代占了他一生的1/12,隨后1/7他說過着獨身的生活,結婚后5年他生了一個兒子,他感到很幸福,可是這孩子的生命只有他父親的一半,兒子去世后,丟番圖就在深深痛苦中活了4年,結束了生命,請問丟番圖活了多少歲?

C++版本

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 int get_age() {
 6     for (float i = 20; i < 120; i++) {
 7         if (i/6.0+i/12.0+i/7.0+5.0+i/2.0+4.0==i) {    //注意用浮點數
 8             return (int)i;
 9         }
10     }
11     return -1;
12 }
13 
14 int main(int argc, char *argv[]) {
15     cout << get_age();
16     getchar();
17     return 0;
18 }

Python版本

 1 # -*- coding:utf-8 -*-
 2 
 3 def get_age():
 4     for age in range(20,120):
 5         if(age/6.0+age/12.0+age/7.0+5.0+age/2.0+4.0==age):
 6             return age
 7     return -1
 8 
 9 if __name__=="__main__":
10     print(get_age())

方法:列出數學等式,然后枚舉即可,注意用浮點數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM