蓝桥杯 基础练习 报时助手(c++)
本來打算更新之前的算法內(nèi)容 這兩天要進行校內(nèi)測試耽擱了 才學沒多久還是會無腦算法 淺淺上傳一下校內(nèi)選拔的個人做法吧 歡迎大佬指點
內(nèi)存限制:512.0MB ?
C/C++時間限制:1.0s ?
Java時間限制:3.0s ?
Python時間限制:5.0s
問題描述
給定當前的時間,請用英文的讀法將它讀出來。
時間用時h和分m表示,在英文的讀法中,讀一個時間的方法是:
如果m為0,則將時讀出來,然后加上“o'clock”,如3:00讀作“three o'clock”。
如果m不為0,則將時讀出來,然后將分讀出來,如5:30讀作“five thirty”。
時和分的讀法使用的是英文數(shù)字的讀法,其中0~20讀作:
??0:zero, 1: one, 2:two, 3:three, 4:four, 5:five, 6:six, 7:seven, 8:eight, 9:nine, 10:ten, ????????11:eleven, 12:twelve, 13:thirteen, 14:fourteen, 15:fifteen, 16:sixteen, 17:seventeen, ????????18:eighteen, 19:nineteen, 20:twenty。
30讀作thirty,40讀作forty,50讀作fifty。
????????對于大于20小于60的數(shù)字,首先讀整十的數(shù),然后再加上個位數(shù)。如31首先讀30再加1的讀法,讀作“thirty one”。
????????按上面的規(guī)則21:54讀作“twenty one fifty four”,9:07讀作“nine seven”,0:15讀作“zero fifteen”。
輸入格式
輸入包含兩個非負整數(shù)h和m,表示時間的時和分。非零的數(shù)字前沒有前導0。
????????h小于24,m小于60。
輸出格式
輸出時間時刻的英文。
樣例輸入
0 15
樣例輸出
zero fifteen
剛看到題時的第一發(fā)應(yīng):暴力算法 由于對c的不了解剛開始做題時定義的char數(shù)組并不是二維數(shù)組 后面發(fā)現(xiàn)輸出結(jié)果都只有一個字母 發(fā)現(xiàn)了應(yīng)該要設(shè)置二維數(shù)組來存儲字符串 相應(yīng)的輸出也應(yīng)改為%s 然后就是不同情況進行判別 分為 (1)h<=20 和 (2) h>20 這兩種情況 再對m進行劃分 劃分出 (1)m>20 (2)m<=20 (3)m==0 三種情況 下面給出代碼
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> using namespace std; char normal[21][100]={"zero","one","two","three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve","thirteen", "fourteen","fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"}; char unnormal[4][100]={"twenty","thirty","forty","fifty"}; int main(){int h,m;scanf("%d %d",&h,&m);if(h<=20){if(m!=0&&m!=00&&m<=20){printf("%s %s",normal[h],normal[m]);}if(m>20){int j=m%10;int i=m/10;if(m==30||m==40||m==50){printf("%s %s %s",normal[h],unnormal[i-2]);}printf("%s %s %s",normal[h],unnormal[i-2],normal[j]);}if(m==0||m==00){printf("%s o'clock",normal[h]); }}if(h>20){int a=h%10;int b=h/10;if(m!=0&&m!=00&&m<=20){printf("%s %s %s",unnormal[b-2],normal[a],normal[m]);}if(m>20){int j=m%10;int i=m/10;printf("%s %s %s %s",unnormal[b-2],normal[a],unnormal[i-2],normal[j]);}if(m==0||m==00){printf("%s %s o'clock",unnormal[b-2],normal[a]); }}return 0; }總結(jié)
以上是生活随笔為你收集整理的蓝桥杯 基础练习 报时助手(c++)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PowerBI也能做爬虫:爬取豆瓣Top
- 下一篇: Unity:图片翻动浏览效果Demo