1. 程式人生 > >PAT—乙級真題訓練營—1001/1002

PAT—乙級真題訓練營—1001/1002

1001. 害死人不償命的(3n+1)猜想 (15)

時間限制400 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者CHEN, Yue

卡拉茲(Callatz)猜想:

對任何一個自然數n,如果它是偶數,那麼把它砍掉一半;如果它是奇數,那麼把(3n+1)砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到n=1。卡拉茲在1950年的世界數學家大會上公佈了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果鬧得學生們無心學業,一心只證(3n+1),以至於有人說這是一個陰謀,卡拉茲是在蓄意延緩美國數學界教學與科研的進展……

我們今天的題目不是證明卡拉茲猜想,而是對給定的任一不超過1000的正整數n,簡單地數一下,需要多少步(砍幾下)才能得到n=1?

輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。

輸出格式:輸出從n計算到1需要的步數。

輸入樣例:
3
輸出樣例:

5

#include <stdio.h>
int main(){
    int n=0;
    scanf("%d",&n);
    int i=0;
    while(n!=1)
    {
        if(n%2==1){
            n =(3*n+1)/2;
        }
        else{
            n=n/2;
        }
        i++;
    }
    printf("%d",i);
    return 0;
}

1002. 寫出這個數 (20)

時間限制400 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者CHEN, Yue

讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。

輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100

輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後一個拼音數字後沒有空格。

輸入樣例:
1234567890987654321123456789
輸出樣例:
yi san wu
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
void print_sum(int n){
    char *name[] ={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    int a[10];
    int i=0;
    for(i=0;n>=10;i++){
        a[i]=n%10;
        n=n/10;
    }
     a[i++]=n;

 while(i--){
    if(i!=0){
      printf("%s ",name[a[i]]);
    }else{
    printf("%s\n",name[a[i]]);
    }
  }


}
int main(){
    char s[100];
    char *n=s;
    scanf("%s",s);
    int sum=0;
    while(*n!='\0'){
        sum=sum+(*n-'0');
        n++;
    }
    print_sum(sum);
}



相關推薦

PAT乙級訓練營1001/1002

1001. 害死人不償命的(3n+1)猜想 (15)時間限制400 ms記憶體限制65536 kB程式碼長度限制8000 B判題程式Standard作者CHEN, Yue卡拉茲(Callatz)猜想:對

PAT乙級及訓練集-1001

卡拉茲(Callatz)猜想:對任何一個自然數n,如果它是偶數,那麼把它砍掉一半;如果它是奇數,那麼把(3n+1)砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到n=1。卡拉茲在1950年的世界數學家大會上公佈了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果鬧得學生們無心學業

1002. 寫出這個數 (20)-PAT乙級

讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。 輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後一個拼音數字後沒有空格。 輸入樣例:1234567890987654

PAT乙級1001,3n+1猜想

1.因為要把n最終砍成1,所以如果n不是1的話,要對n進行操作,所以需要一個迴圈語句(for,while) 2.判斷n的奇偶,對奇偶數有不同的處理,所以需要一個選擇語句(if,switch) #include<iostream>using namespace std; int

PAT 乙級 1003 我要通過!題解

1003 我要通過! (20 分) “答案正確”是自動判題系統給出的最令人歡喜的回覆。本題屬於 PAT 的“答案正確”大派送 —— 只要讀入的字串滿足下列條件,系統就輸出“答案正確”,否則輸出“答案錯誤”。 得到“答案正確”的條件是: 字串中必須僅有 P、

1068. 萬綠叢中一點紅(20)-PAT乙級

通過這個我們可以學到 1、對於怎麼判斷一個m*n的矩陣中每一個元素有沒有八個方向上的相鄰元素 int dir[8][2] = { {-1, -1}, //橫座標-1 縱座標-1 ,這是元素左下角的元素 {-1, 0}, //橫座標-1 縱座標不變,這是元素正左邊的元素 {-1, 1}, //

1074. 宇宙無敵加法器(20)-PAT乙級

1、 string ss1(s.length() - s1.length(), ‘0’); s1 = ss1 + s1; 這行實現的是在s1前面填0使s1與s等長 2、進位制轉換 for(int i = s.length() - 1; i >= 0; i–) { int mod = s

PAT乙級及訓練集 PAT (Basic Level) Practise (中文)1014. 福爾摩斯的約會

大偵探福爾摩斯接到一張奇怪的字條:“我們約會吧!3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間“星期四 14:04”,因為前面兩字串中第1對相同的大寫英

PAT乙級及訓練集 PAT (Basic Level) Practise (中文)1013. 數素數

令Pi表示第i個素數。現任給兩個正整數M <= N <= 104,請輸出PM到PN的所有素數。 輸入格式: 輸入在一行中給出M和N,其間以空格分隔。 輸出格式: 輸出從PM到PN的所有素數,每10個數字佔1行,其間以空格分隔,但行末不得有多餘空格。

PAT乙級及訓練集 PAT (Basic Level) Practise (中文)1012. 數字分類

給定一系列正整數,請按要求對數字進行分類,並輸出以下5個數字:A1 = 能被5整除的數字中所有偶數的和;A2 = 將被5除後餘1的數字按給出順序進行交錯求和,即計算n1-n2+n3-n4...;A3 = 被5除後餘2的數字的個數;A4 = 被5除後餘3的數字的平均數,精確到小數點後1位;

PAT乙級及訓練集 PAT (Basic Level) Practise (中文)1011. A+B和C

給定區間[-231, 231]內的3個整數A、B和C,請判斷A+B是否大於C。 輸入格式: 輸入第1行給出正整數T(<=10),是測試用例的個數。隨後給出T組測試用例,每組佔一行,順序給出A、B和C。整數間以空格分隔。 輸出格式: 對每組測試用例,在一行中

PAT乙級及訓練集 PAT (Basic Level) Practise (中文)1010. 一元多項式求導

設計函式求一元多項式的導數。(注:xn(n為整數)的一階導數為n*xn-1。) 輸入格式:以指數遞降方式輸入多項式非零項係數和指數(絕對值均為不超過1000的整數)。數字間以空格分隔。 輸出格式:以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多

pat乙級1002_寫出這個數

題目:讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。 輸入格式: 每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10​100​​。 輸出格式: 在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格

pat乙級1004_成績排名_C++

讀入 n(>0)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。 輸入格式: 每個測試輸入包含 1 個測試用例,格式為 第 1 行:正整數 n 第 2 行:第 1 個學生的姓名 學號 成績 第 3 行:第 2 個學生的姓名 學號 成績 .

1034. 有理數四則運算(20)-PAT乙級

1034. 有理數四則運算(20)本題要求編寫程式,計算2個有理數的和、差、積、商。輸入格式:輸入在一行中按照“a1/b1 a2/b2”的格式給出兩個分數形式的有理數,其中分子和分母全是整型範圍內的整數

1003. 我要通過!(20)-浙大PAT乙級

1003. 我要通過!(20)“答案正確”是自動判題系統給出的最令人歡喜的回覆。本題屬於PAT的“答案正確”大派送 —— 只要讀入的字串滿足下列條件,系統就輸出“答案正確”,否則輸出“答案錯誤”。得到“

1058. 選擇題(20)-PAT乙級

1058. 選擇題(20)批改多選題是比較麻煩的事情,本題就請你寫個程式幫助老師批改多選題,並且指出哪道題錯的人最多。 輸入格式: 輸入在第一行給出兩個正整數N(<=1000)和M(<

1084. 外觀數列 (20) PAT乙級

1084. 外觀數列 (20)外觀數列是指具有以下特點的整數序列:d, d1, d111, d113, d11231, d112213111, ... 它從不等於 1 的數字 d 開始,序列的第 n+1 項是對第 n 項的描述。比如第 2 項表示第 1 項有 1 個 d,所以

1080. MOOC期終成績 (25)-PAT乙級

1080. MOOC期終成績 (25)對於在中國大學MOOC(http://www.icourse163.org/)學習“資料結構”課程的學生,想要獲得一張合格證書,必須首先獲得不少於200分的線

1070. 結繩(25) PAT乙級

1070. 結繩(25) 給定一段一段的繩子,你需要把它們串成一條繩。每次串連的時候,是把兩段繩子對摺,再如下圖所示套接在一起。這樣得到的繩子又被當成是另一段繩子,可以再次對摺去跟另一段繩子串連。每次串連後,原來兩段繩子的長度就會減半。 給定N段繩子的長度,你需