我們定義如下矩陣:
1/1 1/2 1/3
1/2 1/1 1/2
1/3 1/2 1/1
矩陣對角線上的元素始終是1/1,對角線兩邊分數的分母逐個遞增。
請求出這個矩陣的總和。
輸入包含多組測試資料。每行給定整數n(n<50000),表示矩陣為n*n。當n=0時,輸入結束。
輸出答案,結果保留2位小數。
123
40
1.00
3.00
5.67
8.83
參考**及分析
分析1.如果這道題用二維陣列做,編譯時就會報錯,因為是在是太大了,空間超限;
2.如果取消陣列,用兩個for迴圈,會導致時間複雜度為o(n²),程式就會超時;
所以最好的辦法就是找規律,數分母為1的分數有幾個,分母為2的分數有幾個,……
然後用乙個for迴圈表示出來。
參考**
#include
intmain()
sum +
= n *
(1.0/1
);//n個1,單獨累加
printf
("%.2lf\n"
,sum);}
return0;
}
問題 A 分數矩陣
時間限制 1.000 sec 記憶體限制 32 mb 提交 868 解決 320 提交 狀態 命題人 外部匯入 題目描述 我們定義如下矩陣 1 1 1 2 1 3 1 2 1 1 1 2 1 3 1 2 1 1 矩陣對角線上的元素始終是1 1,對角線兩邊分數的分母逐個遞增。請求出這個矩陣的總和。輸入...
遞推 分數矩陣
i 分數矩陣 time limit 1000msmemory limit 32768kb64bit io format i64d i64u description 我們定義如下矩陣 1 1 1 2 1 3 1 2 1 1 1 2 1 3 1 2 1 1 矩陣對角線上的元素始終是1 1,對角線兩邊分數...
1067 Problem A 分數矩陣
時間限制 1 sec 記憶體限制 32 mb 提交 735 解決 279 我們定義如下矩陣 1 1 1 2 1 3 1 2 1 1 1 2 1 3 1 2 1 1 矩陣對角線上的元素始終是1 1,對角線兩邊分數的分母逐個遞增。請求出這個矩陣的總和。輸入包含多組測試資料。每行給定整數n n 50000...