Re: [問題] 找規律
推 east101010:我寫個c語言程式跑出來的結果也是712是第三位仁兄 11/12 16:28
推 bluehaerts:樓上這位大大 我想看看C的程式 請問可以寄給我嗎 11/12 17:56
→ bluehaerts:C的新手 不知道 要從哪下手 11/12 17:58
#include <stdio.h>
#include <stdlib.h>
#define SWAP(x,y) {int temp; temp = x; x = y; y = temp;}
int main()
{
int i , j[1001] , a , b ;
for (i = 1 ; i <= 1000 ; i++)
j[i] = i ;
do
{
for (i = 1 ; i <= 1000 ; i++)
if (i % 3 == 0)
j[i] = 9999 ;
for (a = 1 ; a <= 1000 ; a++)
for (b = 1 ; b <= 1000 ; b++)
if (j[a] < j[b])
SWAP (j[a] , j[b]) ;
} while (j[4] != 9999) ;
for (i = 1 ; i <= 1000 ; i++)
printf ("%d " , j[i]) ;
system ("pause") ;
return 0;
}
我寫的很草率
大概解釋一下流程就是一開始先讓j陣列內第1項到第1000項的值分別設為1~1000
然後每當陣列是3的倍數的項,就設值為9999
接著用泡沫排序由小排到大,
也就是執行第一次的話,從陣列第667項之後的數字都會變成9999
執行第二次的話,從陣列第445項之後的數字都會變成9999
...
...
這步驟就不斷重複
直到第4項的數字也是9999的時候
那就代表前3項是最後沒被我更改為9999的數字
最後再從陣列第1項印到第1000項
印出來會顯示 1 2 712 9999 9999 9999 9999 ... ... 9999
這樣我就知道是哪三個囉
第二題也可以靠寫程式去算出答案
不過我等等要去夜唱了
所以懶得思考哩= = 你可以嘗試寫看看XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.123.177
※ 編輯: east101010 來自: 123.204.123.177 (11/12 21:46)
推
11/13 11:37, , 1F
11/13 11:37, 1F
討論串 (同標題文章)
Inference 近期熱門文章
3
13
PTT遊戲區 即時熱門文章
64
204
130
240