如何用c語言解決數字河問題

2021-08-09 05:44:00 字數 1191 閱讀 4486

時限:1000ms 記憶體限制:10000k 總時限:3000ms

描述:

數字河中的乙個數n 的後繼數是n 加上其每位數字的和。例如,12345的後繼數是12360,因為12345+1+2+3+4+5=12360。如果數字河的第乙個數為k,我們就稱此數字河為river k。例如,river 480 代表序列,river 483 代表序列。

當兩個數字河有相同的元素時,我們稱這兩個數字河在此元素處相遇。例如,river 480 和river 483 在元素519處相遇。所有數字河都會和river 1, river 3 或river 9 相遇。程式設計計算給定的數字河最先與以上三條河流中的哪一條相遇,在何元素處相遇?

輸入:

輸入檔案包括多組測試用例,每個測試用例佔一行,以「0」標誌檔案結束,該行無需處理。

每行給定乙個整數 n ,(1<=n<=16384) ,即river n。

輸出:

對於每個測試用例輸出兩行,第一行為測試用例號,第二行輸出「first meets river x at y」。其中,y表示river n 最先遇到的river x中的最小元素值(x = 1,3,9)。

輸入樣例:

117520

輸出樣例:

case #1

first meets river 9 at 117

case #2

first meets river 1 at 107

#include#include#define max_times 1200

int *river(int i, int* a);

void meet(int n, int i, int j, int k);

int main()

return 0;

}int *river(int i, int* a)//數字河函式 

return a;

}void meet(int n, int i, int j, int k)

//並列的三個if可節省運算時間 

if (a1 == b1)

if (a1 == c1)

if (a1 == d1)

while (a1 < b1 && a1 < c1 && a1 < d1)//此時數字河不能相遇 

break;

}if (num)

break;}}

C語言 數字河

描述 數字河中的乙個數n 的後繼數是n 加上其每位數字的和。例如,12345的後繼數是12360,因為12345 1 2 3 4 5 12360。如果數字河的第乙個數為k,我們就稱此數字河為river k。例如,river 480 代表序列,river 483 代表序列。當兩個數字河有相同的元素時,...

C語言如何用OpenGL

c語言究竟可不可以使用opengl程式設計?網上多的是vc 的,delphi的等等 可我就是不想學vc 用c語言又不知道怎麼初始化設定,好痛苦的。比方說vc 中,是這樣設定的 1.將glut.dll和glut32.dll拷貝到windows system32目錄下。2.將glut.h拷貝到整合環境安...

如何用c語言解決邏輯題選太子

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 某皇帝有2m個兒子,現在要從中選出乙個做太子,皇帝不知道該把那乙個皇子立為太子,於是決定用下面的方法來選出太子,設每個太子的編號分別1 2 3 2m,按順時針方向站成乙個圓圈,現在從1號太子開始按順時針方向數,數到第n個人,把...