Re: [ACM ] 107 code已更新

看板C_and_CPP作者 (克里斯)時間17年前 (2007/07/10 15:19), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/1
#include <iostream> #include <cmath> using namespace std; int main(int argc, char *argv[]) { int a = 0, b = 0, n = 0; cin >> a >> b; for (int i = 2;i <= a;i++) { //找n float c = logf((float)a) / logf((float)b); float d = logf((float)i) / logf((float)i - 1); if (c == d) { n = i; break; } } // 找k int k = (int)(logf((float)a) / logf((float)n)); int num = 1, length = a, sum = a, idle = 1; for (int i = 0;i < k;i++) { //變魔術 num *= (n - 1); //變魔術的貓數 length /= n; //貓的身高 sum += (num * length); //總身高 idle += num; //總貓數 } cout << idle - num << " " << sum << endl; system("pause"); return 0; } ※ 編輯: chrisdar 來自: 163.23.17.131 (07/10 15:20)

07/10 16:00, , 1F
對照您的程式碼後,我大概找到問題的所在...再次謝謝
07/10 16:00, 1F

07/10 16:03, , 2F
您的寫法看起來比我的簡潔有力多了~
07/10 16:03, 2F

07/10 20:16, , 3F
用了聯立方程式求到超越函數解 只好用代入法測試..
07/10 20:16, 3F

07/10 20:20, , 4F
我比較擔心logf的效能 遇到in:1M,1M-1 真的很嚴重...
07/10 20:20, 4F

07/10 20:24, , 5F
不知道有誰能改進一下找N的方法...質因數分解法!!
07/10 20:24, 5F
文章代碼(AID): #16apC4ah (C_and_CPP)