- 如果代碼存在問(wèn)題,麻煩大家指正 ~ ~
-
有幫助麻煩點(diǎn)個(gè)贊 ~ ~
7-9 特殊a串?dāng)?shù)列求和(分?jǐn)?shù) 15)
給定兩個(gè)均不超過(guò)9的正整數(shù)a和n,要求編寫(xiě)程序求a+aa+aaa++?+aa?a(n個(gè)a)之和。
輸入格式:
輸入在一行中給出不超過(guò)9的正整數(shù)a和n。
輸出格式:
在一行中按照“s = 對(duì)應(yīng)的和”的格式輸出。
輸入樣例:
2 3
輸出樣例:
s = 246
代碼長(zhǎng)度限制 16 KB
時(shí)間限制 400 ms
內(nèi)存限制 64 MB
參考代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770137.html
#include <stdio.h>
int main()
{
int a, b, sum=0, i, x=0;
scanf("%d %d", &a, &b);
for (i = 1; i <= b; i++) {
x = x*10 + a;
sum += x;
}
printf("s = %d", sum);
return 0;
}
7-10 窮舉法搬運(yùn)磚塊問(wèn)題(分?jǐn)?shù) 15)
這是中國(guó)古典算術(shù)問(wèn)題,某工地需要搬運(yùn)磚塊,已知男人一人搬3塊,女人一人搬2塊,小孩兩人搬1塊。有多少種搬法用N人正好搬N塊磚?
輸入格式:
輸入正整數(shù)N。
輸出格式:
輸出所有滿(mǎn)足條件的搬法,每種搬法占一行。
每行按如下格式依次輸出該搬法中男人、女人、小孩的人數(shù),按男人人數(shù)的遞增順序輸出,中間用空格間隔(=
前后沒(méi)有多余的空格,行末也無(wú)空格)。
men=男人數(shù) women=女人數(shù) child=小孩數(shù)
若沒(méi)有滿(mǎn)足條件的搬法,則輸出"No solution!"
輸入樣例1:
45
輸出樣例1:
men=0 women=15 child=30
men=3 women=10 child=32
men=6 women=5 child=34
men=9 women=0 child=36
輸入樣例2:
1
輸出樣例2:
No solution!
代碼長(zhǎng)度限制 16 KB
時(shí)間限制 400 ms
內(nèi)存限制 64 MB
參考代碼
#include <stdio.h>
int main()
{
int n, i, j, k, t=0;
scanf("%d", &n);
for(i=0; i<=n/3; i++)
for(j=0; j<=n/2; j++){
k = (n-i*3-j*2)*2;
if(i+j+k == n) {
printf("men=%d women=%d child=%d\n", i, j, k);
t=1;
}
}
if(t==0)printf("No solution!\n");
return 0;
}
7-11 數(shù)字金字塔(分?jǐn)?shù) 15)
輸入一個(gè)正整數(shù)repeat (repeat<10),做repeat次下列運(yùn)算:
- 輸入一個(gè)正整數(shù)n(n<10),輸出n行數(shù)字金字塔。
輸出時(shí)使用以下語(yǔ)句:
printf(" ");
printf("%d ", i);
printf("\n");
輸入格式:
輸入在第1行中給出1個(gè)正整數(shù)repeat(repeat<10)
接下來(lái)repeat行,每行給出一個(gè)正整數(shù)n(n<10)
輸出格式:
按照對(duì)應(yīng)順序的n值,依次輸出repeat個(gè)數(shù)字金字塔
(n行數(shù)字金字塔的格式如樣例所示,注意:每個(gè)數(shù)字后面跟一個(gè)空格。)
輸入樣例:
2
5
2
輸出樣例:
1
2 2 2
3 3 3 3 3
4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5
1
2 2 2
代碼長(zhǎng)度限制 16 KB
時(shí)間限制 400 ms
內(nèi)存限制 64 MB
參考代碼
#include<stdio.h>
int main()
{
int repeat, i=0, n, m, p, q;
scanf("%d", &repeat);
for(i=0; i<repeat; i++){
scanf("%d", &n);
for(m=1; m<=n; m++){
for(q=n; q>m; q--)
printf(" ");
for(p=1; p<=2*m-1; p++)
printf("%d ", m);
printf("\n");
}
}
return 0;
}
7-12 輸出N以?xún)?nèi)的所有素?cái)?shù)(分?jǐn)?shù) 15)
編程找出N(2≤N≤500)以?xún)?nèi)(即小于等于N)的所有素?cái)?shù)。
輸入格式:
輸入整數(shù)N(2≤N≤500)。
輸出格式:
每8個(gè)一行輸出N以?xún)?nèi)的所有素?cái)?shù)。注意每個(gè)數(shù)據(jù)均占5列,且采用右對(duì)齊。
輸入樣例1:
50
輸出樣例:
2 3 5 7 11 13 17 19
23 29 31 37 41 43 47
代碼長(zhǎng)度限制 16 KB
時(shí)間限制 400 ms
內(nèi)存限制 64 MB
參考代碼
#include <stdio.h>
#include <math.h>
int isprime(int n)
{
if(n == 1) return 0;
for(int i = 2; i <= sqrt(n); i++) {
if(n % i == 0)
return 0;
}
return 1;
}
int main()
{
int i, n, k=0;
scanf("%d", &n);
for(i=1; i<=n; i++)
if(isprime(i)) {
k++;
if(k == 8) {
printf("%5d\n", i);
k=0;
} else printf("%5d", i);
}
return 0;
}
7-13 猜數(shù)字游戲(分?jǐn)?shù) 15)
猜數(shù)字游戲是令游戲機(jī)隨機(jī)產(chǎn)生一個(gè)100以?xún)?nèi)的正整數(shù),用戶(hù)輸入一個(gè)數(shù)對(duì)其進(jìn)行猜測(cè),需要你編寫(xiě)程序自動(dòng)對(duì)其與隨機(jī)產(chǎn)生的被猜數(shù)進(jìn)行比較,并提示大了(“Too big”),還是小了(“Too small”),相等表示猜到了。如果猜到,則結(jié)束程序。程序還要求統(tǒng)計(jì)猜的次數(shù),如果1次猜出該數(shù),提示“Bingo!”;如果3次以?xún)?nèi)猜到該數(shù),則提示“Lucky You!”;如果超過(guò)3次但是在N(>3)次以?xún)?nèi)(包括第N次)猜到該數(shù),則提示“Good Guess!”;如果超過(guò)N次都沒(méi)有猜到,則提示“Game Over”,并結(jié)束程序。如果在到達(dá)N次之前,用戶(hù)輸入了一個(gè)負(fù)數(shù),也輸出“Game Over”,并結(jié)束程序。
輸入格式:
輸入第一行中給出兩個(gè)不超過(guò)100的正整數(shù),分別是游戲機(jī)產(chǎn)生的隨機(jī)數(shù)、以及猜測(cè)的最大次數(shù)N。最后每行給出一個(gè)用戶(hù)的輸入,直到出現(xiàn)負(fù)數(shù)為止。
輸出格式:
在一行中輸出每次猜測(cè)相應(yīng)的結(jié)果,直到輸出猜對(duì)的結(jié)果或“Game Over”則結(jié)束。
輸入樣例:
58 4
70
50
56
58
60
-2
輸出樣例:
Too big
Too small
Too small
Good Guess!
代碼長(zhǎng)度限制 16 KB
時(shí)間限制 400 ms
內(nèi)存限制 64 MB
參考代碼
#include <stdio.h>
int main()
{
int i, a, n, num = 0, t;
scanf("%d %d", &a, &n);
if (n == 0 || n <= 0) {
printf("Game Over\n");
return 0;
}
for(i = 1; ;i++) {
scanf("%d", &t);
num++;
if (num > n || t < 0) {
printf("Game Over\n");
return 0;
}
if (t > a) printf("Too big\n");
if (t < a) printf("Too small\n");
if (t == a && num == 1) {
printf("Bingo!\n");
break;
}
if (t == a && num > 1 && num <= 3) {
printf("Lucky You!\n");
break;
}
if (t == a && num > 3 && num <= n) {
printf("Good Guess!\n");
break;
}
}
return 0;
}
7-14 外星人的一天(分?jǐn)?shù) 15)
地球上的一天是 24 小時(shí)。但地球上還有一些精力和勤奮度都遠(yuǎn)超一般人的大神級(jí)人物,他們的“一天”是以 48 小時(shí)為周期運(yùn)轉(zhuǎn)的,這種人被人們尊稱(chēng)為“外星人”。比如普通人的周一早 8:30 是外星人的周一早 4:15;普通人的周二早 9:21 是外星人的周一下午 4:40 —— 對(duì)外星人而言,一周的工作時(shí)間只有三天(即普通人的周一至周六),周日他們會(huì)蒙頭大睡恢復(fù)體力,時(shí)間對(duì)他們是沒(méi)有意義的。
在外星人眼里,地球人的時(shí)鐘對(duì)他們而言實(shí)在是太不方便了。本題就請(qǐng)你為外星人們實(shí)現(xiàn)一款專(zhuān)用時(shí)鐘。
輸入格式:
輸入在一行中給出一個(gè)不超過(guò) 10 的正整數(shù) N,隨后 N 行,每行給出一個(gè)地球人的時(shí)刻,格式為:Day hh:mm
,其中Day
是 [0,6] 區(qū)間內(nèi)的整數(shù),順序代表周日至周六;hh
是 24 小時(shí)制的小時(shí)數(shù),是 [0,23] 區(qū)間內(nèi)的整數(shù);mm
是分鐘數(shù),是 [0,59] 區(qū)間內(nèi)的整數(shù)。
輸出格式:
對(duì)輸入的每一行地球人時(shí)刻,輸出對(duì)應(yīng)的外星人時(shí)間,格式與輸入相同。其中Day
在 [0,3] 區(qū)間內(nèi),對(duì)應(yīng)周日到周三;分鐘數(shù)若不是整數(shù),則向下取整。注意:由于周日的時(shí)間對(duì)外星人沒(méi)有意義,所以直接輸出地球人的時(shí)間即可。
輸入樣例:
3
1 08:30
2 09:21
0 21:07
輸出樣例:
1 04:15
1 16:40
0 21:07
代碼長(zhǎng)度限制 16 KB
時(shí)間限制 400 ms
內(nèi)存限制 64 MB
參考代碼
#include <stdio.h>
int main(){
int day, d, h, m;
scanf("%d", &day);
while(day--) {
scanf("%d %02d:%02d", &d, &h, &m);
if(d == 0) {
printf("%d %02d:%02d\n", d, h, m);
continue;
} else if (d % 2 == 1) {
d = d/2 + 1;
} else {
d = d/2;
h += 24;
}
m = ((h % 2)*60 + m) / 2;
h /= 2;
printf("%d %02d:%02d\n", d, h, m);
}
return 0;
}
7-15 整數(shù)的分類(lèi)處理(分?jǐn)?shù) 15)
給定 N 個(gè)正整數(shù),要求你從中得到下列三種計(jì)算結(jié)果:
- A1 = 能被 3 整除的最大整數(shù)
- A2 = 存在整數(shù) K 使之可以表示為 3K+1 的整數(shù)的個(gè)數(shù)
- A3 = 存在整數(shù) K 使之可以表示為 3K+2 的所有整數(shù)的平均值(精確到小數(shù)點(diǎn)后 1 位)
輸入格式:
輸入首先在第一行給出一個(gè)正整數(shù) N,隨后一行給出 N 個(gè)正整數(shù)。所有數(shù)字都不超過(guò) 100,同行數(shù)字以空格分隔。
輸出格式:
在一行中順序輸出 A1、A2、A3的值,其間以 1 個(gè)空格分隔。如果某個(gè)數(shù)字不存在,則對(duì)應(yīng)輸出NONE
。
輸入樣例 1:
8
5 8 7 6 9 1 3 10
輸出樣例 1:
9 3 6.5
輸入樣例 2:
8
15 18 7 6 9 1 3 10
輸出樣例 2:
18 3 NONE
代碼長(zhǎng)度限制 16 KB
時(shí)間限制 400 ms
內(nèi)存限制 64 MB文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-770137.html
參考代碼
#include <stdio.h>
int main()
{
int i, n, m, a1=0, a2=0, cnt3=0;
double sum=0.0;
scanf("%d", &n);
for(i=0; i<n; i++) {
scanf("%d", &m);
if(m%3 == 0) {
if(a1<m) a1=m;
}
else if(m%3 == 1)
a2++;
else if(m%3 == 2) {
cnt3++;
sum += m;
}
}
if(a1) printf("%d ", a1);
else printf("NONE ");
if(a2) printf("%d ", a2);
else printf("NONE ");
if(cnt3) printf("%.1f", sum/cnt3);
else printf("NONE");
return 0;
}
到了這里,關(guān)于【PTA-C語(yǔ)言】編程練習(xí)3 - 循環(huán)結(jié)構(gòu)Ⅱ的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!