[問題] 請問這樣的程式要怎麼改成遞迴
開發平台(Platform):Dev C++
原程式為
#include <stdlib.h>
#include <iostream.h>
#include <math.h>
main(){
double err = pow(2,10); //一個限值
double a[4] = {0, 0, 0, 0}; //代表有1~4 四個變數
double tim = 0; //計數器
while (a[0] < err - sizeof a/sizeof a[0] + 1) {
a[3] = a[3] + 1;
if (a[3] > err){
a[2] = a[2] + 1;
if (a[2] > err){
a[1] = a[1] + 1;
if (a[1] > err){
a[0] = a[0] + 1;
a[1] = a[0] + 1;
}
a[2] = a[1] + 1;
}
a[3] = a[2] + 1;
}
tim = tim + 1;
}
cout << tim;
system("pause");
}
現在a變數只有4個 但當要計算的a變數數量增加時 if判斷式也會往中間不斷增加
最後a變數可能要增加到100個左右 即1:100
用if寫可能會寫到天荒地老 現在卡在不知道如何把if寫成for迴圈
以下是我已經寫好的 但是有一行我怎麼塞就是塞不進去(if之後的那行)
希望有人可以幫幫我
#include <stdlib.h>
#include <iostream.h>
#include <math.h>
double test1(double x){
double err = 2^10, tim = 1, a = zeros(1,x);
while (a[0] < err - sizeof a/sizeof a[0] + 1) {
for (i = (length(a)-1; i<=2; i--) {
if a[i] > err
a[i-1] = a[i-1] + 1;
a[i] = a[i] + 1;
}
% ????????????????????????????????????????
}
tim = tim + 1;
}
cout << tim;
}
那行不能放在if內 但我也不知道該放哪
在這先謝謝各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.237.166
→
07/06 21:54, , 1F
07/06 21:54, 1F
一個累加器 當a[3]超過一個門檻時 a[2]會加1
但a[3]不是歸零 是從a[2]+1開始算
a[2]a[1]與a[1]a[0]之間的關係依此類推
我的目地是要推算出當a值有幾個時 另一支程式大約要執行多久
推
07/06 22:01, , 2F
07/06 22:01, 2F
推
07/06 22:03, , 3F
07/06 22:03, 3F
我是覺得這有點像遞迴 好像用迴圈寫不出來 也可能是我改的方式根本是錯的
也請各位不令賜教 謝謝各位了
※ 編輯: poiuy777 來自: 122.116.237.166 (07/06 22:27)
→
07/06 22:33, , 4F
07/06 22:33, 4F
→
07/06 22:34, , 5F
07/06 22:34, 5F
→
07/06 22:35, , 6F
07/06 22:35, 6F
→
07/06 22:35, , 7F
07/06 22:35, 7F
→
07/06 22:38, , 8F
07/06 22:38, 8F
→
07/06 22:38, , 9F
07/06 22:38, 9F
→
07/06 22:43, , 10F
07/06 22:43, 10F
→
07/06 22:45, , 11F
07/06 22:45, 11F
→
07/06 22:46, , 12F
07/06 22:46, 12F
→
07/06 22:48, , 13F
07/06 22:48, 13F
→
07/06 22:49, , 14F
07/06 22:49, 14F
→
07/06 22:49, , 15F
07/06 22:49, 15F
→
07/06 22:50, , 16F
07/06 22:50, 16F
→
07/06 22:51, , 17F
07/06 22:51, 17F
→
07/06 22:51, , 18F
07/06 22:51, 18F
不好意思 是我筆誤 因為我是從matlab轉過來的 一個起頭是1一個起頭是0 抱歉
→
07/06 22:51, , 19F
07/06 22:51, 19F
→
07/06 22:52, , 20F
07/06 22:52, 20F
→
07/06 22:53, , 21F
07/06 22:53, 21F
謝謝f大 我努力拜讀一下您的程式
※ 編輯: poiuy777 來自: 122.116.237.166 (07/06 22:59)
→
07/06 22:57, , 22F
07/06 22:57, 22F
※ 編輯: poiuy777 來自: 122.116.237.166 (07/06 22:59)
→
07/06 23:00, , 23F
07/06 23:00, 23F
→
07/06 23:03, , 24F
07/06 23:03, 24F
→
07/06 23:04, , 25F
07/06 23:04, 25F
→
07/06 23:05, , 26F
07/06 23:05, 26F
→
07/06 23:05, , 27F
07/06 23:05, 27F
→
07/06 23:12, , 28F
07/06 23:12, 28F
→
07/06 23:31, , 29F
07/06 23:31, 29F
再次謝謝f大 但是剛剛test一下 輸出似乎與原程式不同 http://codepad.org/44car4Ue
不過我會試著往這個方向去修改的 謝謝
經過一夜的折騰 遞迴真的不是像我一樣的一般人寫得出來的
也見識到了C版大家的熱情 謝謝各位的指導
※ 編輯: poiuy777 來自: 122.116.237.166 (07/07 00:32)
→
07/07 00:33, , 30F
07/07 00:33, 30F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):