[問題] 剪繩子的天數

看板C_and_CPP (C/C++)作者 (lee)時間16年前 (2009/06/22 00:17), 編輯推噓4(4011)
留言15則, 10人參與, 最新討論串1/1
假設有條繩子3000公尺 每天剪去一半的長度 需要花幾天時間 目前我寫的程式是這樣 #include <iostream> #include <cstdlib> using namespace std ; int main (void) { int i,j; for (i=3000;i>=5;i/=2) cout << "3000公尺的繩子花了幾天?" << i << endl ; system ("pause"); return 0; } 結果會是 "3000公尺的繩子花了幾天?3000 "3000公尺的繩子花了幾天?1500 "3000公尺的繩子花了幾天?750 以此類推 我想要讓他印出正確的天數 我應該修改哪個部份呢 感謝 -- ╱_◢███◣ ◢███◣ ∣ ∣ 1939 █████ 1940 ██1941▂ ▂ ∣ Bat man ▅◤◥▅ The flash Captain America ∣◤ ◥ ︹ ◢ DC★ ︹ ◢ DC★ ﹌ ◢ MARVEL -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.107.181

06/22 00:20, , 1F
每次剪一半 剪到什麼時候@@
06/22 00:20, 1F

06/22 00:21, , 2F
剪到5公尺就不剪 花了幾天
06/22 00:21, 2F

06/22 00:25, , 3F
莊子 一尺之錘 日截其半 百世不竭
06/22 00:25, 3F

06/22 00:39, , 4F
你的j應該是拿來計數的吧 你印出的是繩子的長度 非天數
06/22 00:39, 4F

06/22 01:12, , 5F
cout << "第"<<((3000/i)-1)<<"天長為:" << i << endl ;
06/22 01:12, 5F

06/22 01:12, , 6F
你要的 = = 不過這樣的邏輯 很怪喔= =
06/22 01:12, 6F

06/22 01:15, , 7F
for裡面加個count計數,cout拿出迴圈外輸出count
06/22 01:15, 7F

06/22 02:00, , 8F
for(j=3000,i=0;j>=5;++i,j/=2);
06/22 02:00, 8F

06/22 03:53, , 9F
cout << log(3000)/log(2) << "天" 一行解決
06/22 03:53, 9F

06/22 10:50, , 10F
你的j怎麼沒有用到?
06/22 10:50, 10F

06/22 11:00, , 11F
最大的問題在於你在做整數除法. 做到 375 再除 2 答案
06/22 11:00, 11F

06/22 11:00, , 12F
就出問題了
06/22 11:00, 12F

06/22 11:20, , 13F
已經懂了 謝謝各位高手 不過那個log 會錯誤唷
06/22 11:20, 13F

06/22 13:29, , 14F
會錯? 那一定是你沒有加 #include<math.h>
06/22 13:29, 14F

06/22 13:46, , 15F
or #incdude<cmath>
06/22 13:46, 15F
文章代碼(AID): #1AFbqZI5 (C_and_CPP)
文章代碼(AID): #1AFbqZI5 (C_and_CPP)