沉寂了近乎一月,這段時間有學校的事,也有私人的事,原計畫每天寫一篇部落格的遠大理想這段時間被擱置了,好在現在有時間能重新拾起了。話不多說,進入正題!
昨晚乙個好哥們(西電軟工的大神)發了一則數值變換小題。
原題如下:
牛牛想對乙個數做若干次變換,直到這個數隻剩下一位數字。變換的規則是:將這個數變成 所有位數上的數字的乘積。比如285經過一次變換後轉化成2 * 8 * 5 = 80。 問題是,要做多少次變換,使得這個數變成個位數。
輸入描述 :
輸入乙個整數。小於等於2, 000, 000, 000。
輸出描述 :
輸出乙個整數,表示變換次數。
輸入例子 : 285 輸出例子 : 2
我覺得挺有意思的,就寫了下**。
#include<1218.h>
int main()
a = z;
x = z;
z = 1;
} printf("變換次數為:%d \n", y);
system("pause");
return 0;
}
這是我的**,絲毫未改。很渣,不是嗎?
(說明一下,標頭檔案的1218.h 是個人建立的標頭檔案)
以下是哥們的**:
#includeint main()
count++;
m = n;
n = 1;
} printf("%d", count);
return 0;
}
沒有對比就沒有傷害。。。
我感覺自己受到了一萬點暴擊。。。
我的變數定義了6個,是哥們的2倍。。。
這個題很簡單,牛牛的問題很容易的到解決。。。
但是我的問題卻是不容易處理。
不過,**的正
確性、健壯性、可靠性、效率、易用性、可讀性(可理解性)、可擴充套件性、 可復用性、相容性
等等,一直是難題,想寫出完美的**,不是容易之事。這需要不斷的練習,優化。
我在成長,我在學習。
總結:路漫漫其修遠兮,吾將上下而求索!
牛牛的木板 牛牛的字元反轉
原題鏈結 題意 一段長n的序列,由0 1組成。可把m個0改1,求序列中最大連續1的個數。思路 尺取法 雙指標法 設定一對指標l,r。最開始都指向第乙個元素。l,r是區間左右端點,r指標先不斷往右遍歷,當區間內0的個數超過m時,l指標向右遍歷,要跳過乙個0,維持乙個區間內改了m個0的狀態 其間不斷用區...
迷路的牛牛
牛牛去犇犇老師家補課,出門的時候面向北方,但是現在他迷路了。雖然他手裡有一張地圖,但是他需要知道自己面向哪個方向,請你幫幫他。輸入描述 每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個正整數,表示轉方向的次數n n 1000 接下來的一行包含乙個長度為n的字串,由l和r組成,l表示向左轉,r表...
牛牛的鬧鐘
牛牛總是睡過頭,所以他定了很多鬧鐘,只有在鬧鐘響的時候他才會醒過來並且決定起不起床。從他起床算起他需要x分鐘到達教室,上課時間為當天的a時b分,請問他最晚可以什麼時間起床 輸入描述 每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個正整數,表示鬧鐘的數量n n 100 接下來的n行每行包含兩個整...