華一7 7號水題賽小結

2021-09-25 02:36:02 字數 3349 閱讀 8456

7.7剛考完試,成績很不理想,測試之前覺得自己都可以ak,結果一共5道題,滿分500分,只得300分,所以來寫乙個小結

1、 求最大質子問題。

編一程式,輸入正整數 n(n 在 2~2*10

9之間), 求它的最大質因子(包括它本身)。 輸入檔案:只有一行,就是正整數 n, 輸出檔案:只有一行,就是所求的最大質因子。 輸入輸出樣例:

輸入:7 輸入:9

輸出:7 輸出:3

非常明顯的水題,於是考試時只花3分鐘寫完此題,但是,到了考試要結束的時候,猛然發覺自己的解法有問題!!!

正解應該是:

把i從2列舉到sqrt(n),然後乙個個的除,但是,關鍵一句話,應該要寫while,我卻這樣寫了:

if

(n%i==

0)

其實應該這樣寫

while

(n%i)

於是,我還十分意外的得了60分,不得不說,資料是真的水

貼一波std

#include

#include

#include

#include

using

namespace std;

int n,n1,ans,i;

void

chu()}

intmain()

2、 求數字的乘積根問題。

乙個正整數的數字的乘積 n 的定義是:這個整數中非零數字的乘積。例如,整數 999 的數字乘積為 9

×9×9,即 729;729 的數字乘積為 7×2×9, 即 126;126 的數字乘積為 1×2×6,即 12;12 的數字乘

積為 1×2,即 2。乙個正整數的數字乘積根 n 是這樣得到的:反覆取該整數的非零數字乘積, 直到得到

一位數字為止。例如,在上面的例子中數字的乘積根是 2。

編乙個程式,輸入乙個正整數(長度不超過 200 位數字), 輸出計算其數字乘積根的每一步結果。 輸入檔案:只有一行,就是正整數 n, 輸出檔案:若干行,就是 n 每一步乘積根的結果。 輸入輸出樣例:

輸入:7 輸入:126

輸出:7 輸出:12

2十分裸的高精乘低精,於是題還沒讀完的我,又開始飄了,所以,理所當然得,我漏掉了幾句話(即加黑字),然後,這道題就沒有懸念的爆零了

std:

#include

#include

#include

#include

#include

using

namespace std;

int a[

330]

,b[330];

char s[

330]

;int s1,k;

intmain()

for(

int i=k;i>=

1;i--

) a[i]

=b[i]

,cout<; cout

}return0;

}

3、 文字處理問題。

編寫程式,讀入一行文字,文字是乙個長度不超過255的英文句子,單詞之間有乙個或乙個以

上的空格,輸出:

①統計單詞的個數;

②乙個對應的英文句子,其中原句中的所有小寫字母均轉換成大寫字母,大寫字母轉換成小寫字母;

③刪除所有空格符後對應的句子。 輸入檔案:只有一行,就是乙個英文句子, 輸出檔案:有三行,第一行單詞的個數,第二行,轉換了大小寫的英文句子,第三行刪除空格的句

子。輸入輸出樣例:

輸入:who are you?

輸出:3

who are you?

whoareyou?

emmm,考試時判斷單詞數出現了玄學問題,扣了20分,至今未跳出,棄療

std:

#include

#include

#include

#include

#include

using

namespace std;

char s[

265]

;int p,ans,s1;

void

qiu()}

cout<}void

zhuan()

cout<}void

shan()

intmain()

4、 求商問題。

編乙個程式求 a/b 的值,要求精確到小數點後 n 位(n<=80 的自然數),並且 a也是一道高精模板題,不過是高精度的低精除低精,還行?不過,要注意,被除數乘10時要記得開long long,因為這個問題,我又丟了40分

std

#include

#include

#include

using

namespace std;

long

long a,b,n;

intmain()

cout<'.';

a=a%b;

for(

int i=

1;i<=n;i++

)return0;

}

五、約瑟夫環問題

編號為 1、2、3、…、n 的 n 個人按順時針方向圍坐一圈,每人持有乙個密碼(正整數)。從指定編

號為 1 的人開始,按順時針方向自 1 開始報數,報到指定值 m 時停止報數,報第 m 的人出列,並將他的密

碼作為新的 m 值,從他在順時針方向的下乙個人開始,重新從 1 開始報數,如此類推,直至所有的人全部

出列為止。輸入 n(n<=1000),m(m<=30000)及密碼值(<=10000),試設計乙個程式求出列順序。 輸入檔案:有二行,第一行,n 和 m,第二行,n 個小於等於 10000 的密碼值,中間用空格隔開。 輸出檔案:只有一行,就是出列的順序,編號間以空格隔開。 輸入輸出樣例:

輸入:6 7

1 4 2 8 5 7

輸出:1 2 6 3 5 4

簡單的佇列模擬操作,沒什麼好說的,不過std好像是純模擬

std

#include

#include

#include

using

namespace std;

int k,t,s,n,m;

int a[

1010

],b[

1010];

intmain()

}}return0;

}

總之,最好以後還是不要飄了,要不然競賽班都進不了了qwq

xsy1378 水題7號 貪心

題目大意 有 m 組約束關係 x i,y i 你要構造乙個排列,滿足數 x i 出現在數 y i 前面,請使得這個排列字典序最小,請輸出這個排列。無解請輸出 1。資料範圍 n,m 10 5 我們把約束關係 x i,y i 視作從 y i 連向 x i 的有向邊,於是我們得到了乙個有向圖,無解情況下該...

水題系列之一

實驗任務 給定乙個正整數 n,找出另乙個正整數 m,使得 n 和 m 轉化為二進位制時,它們所出現的 1 的個數一致,且 m 必須比 n 大。輸出乙個滿足條件的最小的 m。例如 78,轉換成二進位制為 1001110,這個二進位制數中有 4 個 1 而 83 1010011 和 86 1010110...

hdoj水題練習(一)

刷了不少劍指offer和leetcode練習演算法,都是只要寫個函式,結果被要求格式的輸入輸出打敗!哭!趕快練習!按這個順序 hdoj1089 針對行數未知的輸入 include 要有.h int main return 0 hdoj1091 針對以0 0結尾的輸入 include include ...