柚子快報(bào)邀請(qǐng)碼778899分享:c++ 開發(fā)語言 藍(lán)橋杯題的題
柚子快報(bào)邀請(qǐng)碼778899分享:c++ 開發(fā)語言 藍(lán)橋杯題的題
冰雹數(shù)【模擬, 2016, 省賽】
任意給定一個(gè)正整數(shù)?N,
如果是偶數(shù),執(zhí)行: N/2;
如果是奇數(shù),執(zhí)行: N×3+1,
生成的新的數(shù)字再執(zhí)行同樣的動(dòng)作,循環(huán)往復(fù)。
通過觀察發(fā)現(xiàn),這個(gè)數(shù)字會(huì)一會(huì)兒上升到很高,一會(huì)兒又降落下來。
就這樣起起落落的,但最終必會(huì)落到"1",這有點(diǎn)像小冰雹粒子在冰雹云中翻滾增長(zhǎng)的樣子。
比如 N=9,
9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1
可以看到,N=9?的時(shí)候,這個(gè)"小冰雹"最高沖到了 52 這個(gè)高度。
輸入描述
輸入一個(gè)正整數(shù) )N(N<106)。
輸 出描述
輸出一個(gè)正整數(shù),表示不大于N?的數(shù)字,經(jīng)過冰雹數(shù)變換過程中,最高沖到了多少。
輸入輸出樣例
示例
輸入
10
輸出
52
運(yùn)行限制
語言最大運(yùn)行時(shí)間最大運(yùn)行內(nèi)存C++1s256MC1s256MJava2s256MPython315s256M
#include
#include
int main(int argc, char *argv[])
{
long long int n,max=0;
scanf("%lld",&n);
for(long long int i=2;i<=n;i++){
long long int t=i;
while(t!=1){
if(t&1){t=t*3+1;}
else {t>>=1;}
if(t>max){max=t;}
}
}
printf("%lld",max);
return 0;
}
ISBN號(hào)碼(模擬, 字符串, 2008, NOIP普及組)
題目描述
每一本正式出版的圖書都有一個(gè) ISBN 號(hào)碼與之對(duì)應(yīng),ISBN 碼包括 9 位數(shù)字、1 位識(shí)別碼和 3 位分隔符,其規(guī)定格式如 “x-xxx-xxxxx-x”,其中符號(hào)“-”是分隔符(鍵盤上的減號(hào)),最后一位是識(shí)別碼,例如0-670-82162-4 就是一個(gè)標(biāo)準(zhǔn)的 ISBN 碼。ISBN 碼的首位數(shù)字表示書籍的出版語言,例如 0 代表英語;第一個(gè)分隔符“-”之后的三位數(shù)字代表出版社,例如 670 代表維京出版社;第二個(gè)分隔之后的五位數(shù)字代表該書在出版社的編號(hào);最后一位為識(shí)別碼。
識(shí)別碼的計(jì)算方法如下:
首位數(shù)字乘以 1 加上次位數(shù)字乘以 2 …… 以此類推,用所得的結(jié)果 mod 11,所得的余數(shù)即為識(shí)別碼,如果余數(shù)為 10,則識(shí)別碼為大寫字母 X。例如 ISBN 號(hào)碼 0-670-82162-4 中的識(shí)別碼 4 是這樣得到的:對(duì) 067082162這9 個(gè)數(shù)字,從左至右,分別乘以 1,2,…,9,再求和,即 0×1+6×2+……+2×9=158,然后取 158 mod 11 的結(jié)果 4 作為識(shí)別碼。 你的任務(wù)是編寫程序判斷輸入的ISBN號(hào)碼中識(shí)別碼是否正確,如果正確,則僅輸出?Right;如果錯(cuò)誤,則輸出你認(rèn)為是正確的 ISBN 號(hào)碼。
輸入描述
輸入一行,是一個(gè)字符序列,表示一本書的 ISBN 號(hào)碼(保證輸入符合 ISBN 號(hào)碼的格式要求)。
輸出描述
輸出一行,假如輸入的 ISBN 號(hào)碼的識(shí)別碼正確,那么輸出Right,否則,按照規(guī)定的格式,輸出正確的 ISBN 號(hào)碼(包括分隔符“-”)。
輸入輸出樣例
示例 1
輸入
0-670-82162-4
輸出
Right
示例 2
輸入
0-670-82162-0
輸出
0-670-82162-4
運(yùn)行限制
最大運(yùn)行時(shí)間:1s最大運(yùn)行內(nèi)存: 128M
#include
int main(){
char arr[14],ch[12]="0123456789X";
scanf("%s",arr);
int i,j=1,sum=0;
for(i=0;i<12;i++){
if(arr[i]=='-')continue;
sum+=(arr[i]-'0')*(j++);
}
if(ch[sum%11]==arr[12])printf("Right");
else {arr[12]=ch[sum%11];
printf("%s",arr);}
return 0;
}
柚子快報(bào)邀請(qǐng)碼778899分享:c++ 開發(fā)語言 藍(lán)橋杯題的題
參考文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。