English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我想請問一下
譬如說從1~100
但是每5個為間距來數
就是,1.6.11.16.21.....96
然後超過100從頭數,就一直這樣到全部數完
但是重覆不能再數

譬如,數到101,超過100,所以從1開始
就是,1.6.11.16.21....86.91.96."2"....
"1"已經數過就不再數了,所以96之後是2

拜託C++高手指導一下
我已經想破頭了
希望可以附上註解,比較可以了解
我比較需要觀念和邏輯,所以麻煩了
感謝!!

2006-12-10 20:51:15 · 4 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

抱歉歐
應該說,1要跳過不屬
所以2之後應該要是"8"
因為6數過了,要跳過

2006-12-10 21:02:11 · update #1

各位大大抱歉歐
我把範圍縮小好了
譬如1~10,間格為三

那我想問要的是這樣
1.4.7.10.5.9.6.3.8.2

先在紙上寫1~10
然後從1開始先打X,數三個,就是4,就這樣到1.4.7.10
然後數就是數>2>3>"5"

也就是出現過的不可以在數

2006-12-11 04:26:34 · update #2

4 個解答

重點: 利用陣列來記錄數過的數

#include
#define Ns 10 ' 所要找的數的個數 (最大數)
#define Diff 3 ' 間隔數

main()
{
int i, skip, outp;
int ary[Ns+1]; ' 要加 1, 因為它從 0 開始數

for (i = 1; i <= Ns; i++) ' 預設 全部都還沒數過
ary[i] = 0;

printf("%4d", 1); ' 數第一個
ary[1] = 1; ' 標示第一個數過了
outp = 1; ' 已經數了一個
i = 1; ' 目前指標的位置
while (outp < Ns)
{
skip = 0; ' 還沒找到有效的間隔
while (skip < Diff)
{
i++;

if (i > Ns) i -= Ns; ' 超過最大數了嗎
if (ary[i] == 0) skip++; ' 找到有效的間隔數
}
printf("%4d", i); ' 印出找到有效的數
ary[i] = 1; ' 標示這一個數過了
outp++; ' 又數了一個
}
printf("\n");
}

2006-12-12 00:46:11 補充:
系統漏了最後的 printf裡面的 反斜線

2006-12-11 19:41:19 · answer #1 · answered by JJ 7 · 0 0

到下面的網址看看吧

▶▶http://*****

2014-07-03 12:47:56 · answer #2 · answered by Anonymous · 0 0

JJ是電腦程式設計師也是數學老師嗎? @_@
不過好像回答不同問題寫的也不一樣..還有puzzl XD

2006-12-13 18:19:46 · answer #3 · answered by ? 5 · 0 0

基本上由於您的題目描述的不是太清楚~所以我只能猜看看這是不是你要的~以下是C的code~不是C++;不過基本上大同小異~printf改成cout就可以了~

#include

int main(void)
{
int i,j,out;

for(i=1;i

2006-12-11 05:17:01 補充:
一開始的#include不知怎麼缺了
沒被秀出來~請自行加上~謝謝

2006-12-11 00:14:16 · answer #4 · answered by Euphoria 2 · 0 0

fedest.com, questions and answers