解決完了例題後,就是10道oj題,挑一些我認為值得研究的題目記錄一下吧
8 乘方計算計算本身並不困難,難點在於如何判斷溢位,直接比較大小顯然是不可能的,因為在比較的時候就已經溢位了。問題描述 給定乙個unsigned long long型資料$x$,計算$x^2, x^3,\cdots$直到$x^5$或溢位為止。
輸入 輸入資料有若干行。每行上有乙個unsigned long long型整數,對應一種情形。
輸出 對於每一種情形,依次輸出$x, x^2, x^3, x^4, x^5$的值,不輸出計算溢位的數值。資料項之間用逗號、空格分隔。
輸入樣例
1111
11111
111111
輸出樣例
1111, 1234321, 1371330631, 1523548331041, 1692662195786551
11111, 123454321, 1371700960631, 15240969373571041
111111, 12345654321, 1371737997260631
【提示】在標頭檔案climits(或limits.h)中巨集定義了一些名稱,用以表示一些資料型別取值的最大值。但不同的編譯系統中巨集定義的識別符號為不盡一致。例如:有的用ulong_long_max,而有的用ullong_max。可以採用如下辦法在程式中統一使用ulong_long_max。
#include
#ifndef long_long_max
#define long_long_max llong_max
#define ulong_long_max ullong_max
#endif
# include# includeintmain()
}return0;
}
11 兌換錢幣這道題的解決思路不難想,直接使用窮舉法是可以解決的。問題描述 對於給定的人民幣金額n(分),問有多少種方案將其兌換成1分、2分、5分。
輸入 輸入資料有若干行。每行上有乙個正整數表示以分為單位的人民幣金額n,對應一種情形。
輸出 對於每一種情形,輸出結果、換行。
輸入樣例
10100
150輸出樣例
10541
1186
#includeintmain()
printf(
"%.0lf\n
",k);
k=0; }
return0;
}
但是使用了三重迴圈來窮舉會造成乙個問題,就是執行時間過長,導致在學校oj系統中tle。
經過我們的觀察不難發現,最後一次迴圈完全是多餘的,只要配湊出5分和2分的數目,就可以解決這個問題。
#includeintmain()
printf(
"%.0lf\n
",k);
k=0; }
return0;
}
而經過我優秀的同學們的討論,也有不用窮舉的辦法。
因為確定了5分的錢數後,就只剩下2分和1分錢幣的組合,而2分錢幣可以轉化為2個1分錢幣,就是另一種組合
如假設共16分,在只有1個五分的情況下,就可以拆成
11=2+2+2+2+2+1顯然,11可以拆成5個2加1個1,就有5+1=6種組合11=2+2+2+2+1+1+1
這樣,這個問題就變成了在5分錢確定的情況下,求剩下可拆成最多幾個2分錢的問題
#includeintmain()
printf(
"%d\n
",l);
}return0;
}
13 指示燈控制問題描述 有m(m<100)盞燈排成一排(從1到m按順序依次編號)。燈的開關均為點觸式的(即點一次開、再點一次則關)。現有n個人(從1到n依次編號)。第乙個人(1號)將燈全部關閉。第二個人(2號)將所有2的倍數編號的燈的開關點一下。第三個人(3號)將所有3的倍數編號的燈的開關點一下。依此類推,當n個人完成其操作後,計算燈亮的數目。
輸入 輸入資料有若干行。每行上有兩個非負整數對應一種情形的m和n。
輸出 對於每一種情形,輸出計算結果、換行。
輸入樣例
7 73 4
6 4輸出樣例52
2
非常有趣的題目,我自己的思路比較複雜。
首先,用乙個陣列來記錄燈的開關情況,0為滅燈,1為亮燈,用乙個函式來執行第n個人開關燈的過程,再用另乙個函式來統計最後亮著的燈的數目。
開關燈的過程
int *light (int *num,int n,intm) }}
return
num;
}
統計亮著的燈
int lcount(int *num,intm)
最後的完整**,可以看到主函式裡面還用了乙個迴圈
#include int *light (int *num,int n,intm) }}
return
num;
}int lcount(int *num,int
m)int
main()
return0;
}
關於oj題就暫且告一段落,下面將會記錄排序演算法和字串處理的內容。
計算機程式設計實訓記錄(6)
要求完成 4 個函式的設計,包括函式原型設計 函式定義 測試 中函式呼叫。請思考 swap1 函式 和 swap2 或 swap3 函式應用場合能否互換,其原因是什麼。要求函式原型設計時盡量做到精準。雖然這麼說但是要求在 啊 在翻了翻檔案後,還是找到了。char array1 10 tom arra...
計算機程式設計實訓記錄(2)
終於把題做完了,結果發現事情還是不少,但還是抽點時間記錄一下。問題描述給定若干個 大於0且不超過1024 實數,計算其中資料的個數 n 最小值 最大值,以及 平均值 此處的 平均值 定義為,若n 2,則需去掉乙個最大值 乙個最小值,剩下的n 2個資料的算術平均值 若n為1或2,則為普通的算術平均值。...
3dCG 期中創新實訓記錄
本次記錄主要內容為 第三週完成的主要工作 第一輪場景材質和燈光布置渲染 第四周的主要工作 動作捕捉 3 4周,也就是四月初我們的三維製作團隊主要進行專案的中期階段。我們完成的任務有兩個主要場景的白模附上材質和顏色,擺放燈光,以及動作設計與彩排,實際運用光學動作捕捉裝置捕捉。我完成的主要任務為 1 單...