洛谷題型摘選(一)

2021-10-10 08:40:29 字數 1947 閱讀 5912

二、兩數之和

三、金幣

總結

給出n(1≤n≤13),請輸出乙個直角邊長度是 n 的數字直角三角形。所有數字都是 2 位組成的,如果沒有 2 位則加上前加 0。

輸入:

5輸出:

0102030405

06070809

101112

1314

15

看到輸出的結果後,我首先想到的就是以前寫過的那個數字金字塔,很顯然需要兩個for語句迴圈巢狀,每一行少乙個值,再使用if語句使得個位數前面加上0就可以了。

#include

intmain()

m--;/* 每一行都少一列 */

printf

("\n");

/* 換行 */

}return0;

}

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9

所以輸出:

[0, 1]

看到題的第一眼還是有些懵,看了一會後就想到了乙個比較笨的辦法,就是兩個迴圈巢狀語句,乙個乙個的試,直到找到對應的答案。

#include

intmain()

;/* 給定的整數陣列 */

int target =9;

/* 給定的目標值 */

int i, j;

for(i=

0;i<

4;i++

)for

(j = i+

1; j <

4; j++

) end:

printf

("[%d,%d]"

, i, j)

;return0;

}

國王將金幣作為工資,發放給忠誠的騎士。第一天,騎士收到一枚金幣;之後兩天(第二天和第三天),每天收到兩枚金幣;之後三天(第

四、五、六天),每天收到三枚金幣;之後四天(第

七、八、九、十天),每天收到四枚金幣……;這種工資發放模式會一直這樣延續下去:當連續n天每天收到n枚金幣後,騎士會在之後的連續n+1

n+1天裡,每天收到n+1枚金幣。

請計算在前k天裡,騎士一共獲得了多少金幣。

輸入:

6輸出:

14輸入:

1000

輸出:29820

這是一道很經典的題,看到題的時候就有一股似曾相識的感覺。首先理解題意,第一天得到1個金幣,第二天和第三天各得到2個金幣,第

四、五、六天每天得到3個金幣,以此類推······如果為3天,就是1 * 1+2 * 2,6天就是1 * 1+2 * 2+ 3* 3,那麼10天就是1 * 1+2 * 2+ 3* 3+4 * 4了,對於不是1,3,6,10等這種的時候,我們只需要減去多餘天數就可以了。所以很明顯需要乙個迴圈語句。

#include

intmain()

sum +

= n *

(i -1)

;/* 減去多得到的金幣(n此時為負數,i已經自加過,所以-1)*/

printf

("%d"

, sum)

;return0;

}

上面的三道題都考察了迴圈語句的使用,也是相對其他題來說算是簡單的題了,只要認真仔細想一想,總會有思路的。加油!?

洛谷題型摘選(四)

二 p1002 過河卒 動態規劃 先在各大 oj 上有 n 個比賽,每個比賽的開始 結束的時間點是知道的。所以,想知道最多能參加幾個比賽。如果要參加乙個比賽必須善始善終,而且不能同時參加 2 個及以上的比賽。第一行是乙個整數 n 接下來 n 行每行是 2 個整數,表示比賽開始 結束的時間。乙個整數,...

關卡一 洛谷比賽

lj終於弄懂了任務,他需要闖過九九八十一個關卡,才能拿到鑰匙,回到主世界。為了早日回家,lj踏入了第一關。這是乙個由方塊構成的世界,連lj都被方塊化了 mc?構成這個世界的方塊只有兩種,泥土方塊和柵欄方塊。由於這是第一關,管理員為了減少難度,將三維世界抽象成二維世界,並派遣npc ljy去告訴lj,...

洛谷 桌球

國際乒聯現在主席沙拉拉自從上任以來就立志於推行一系列改革,以推動桌球運動在全球的普及。其中111111分制改革引起了很大的爭議,有一部分球員因為無法適應新規則只能選擇退役。華華就是其中一位,他退役之後走上了桌球研究工作,意圖弄明白111111分制和212121分制對選手的不同影響。在開展他的研究之前...