PAT-B1036
1. 題目再現(xiàn)
美國總統(tǒng)奧巴馬不僅呼吁所有人都學(xué)習(xí)編程猩系,甚至以身作則編寫代碼寻仗,成為美國歷史上首位編寫計算機(jī)代碼的總統(tǒng)员寇。2014年底安寺,為慶撞扪“計算機(jī)科學(xué)教育周”正式啟動,奧巴馬編寫了很簡單的計算機(jī)代碼:在屏幕上畫一個正方形√羰現(xiàn)在你也跟他一起畫吧言秸!
輸入格式:
輸入在一行中給出正方形邊長N(3<=N<=20)和組成正方形邊的某種字符C软能,間隔一個空格。
輸出格式:
輸出由給定字符C畫出的正方形举畸。但是注意到行間距比列間距大查排,所以為了讓結(jié)果看上去更像正方形,我們輸出的行數(shù)實(shí)際上是列數(shù)的50%(四舍五入取整)抄沮。
輸入樣例:
10 a輸出樣例:
aaaaaaaaaa
a????????????????a
a????????????????a
a????????????????a
aaaaaaaaaa
2. 題目思考
題目還是較為簡單跋核,主要掌握兩個點(diǎn):
- 控制臺輸入內(nèi)容轉(zhuǎn)化為int,char數(shù)據(jù)
- 發(fā)現(xiàn)輸出規(guī)律
3. 實(shí)現(xiàn)方式
-
c++實(shí)現(xiàn)
#include<cstdio> int main() { int col, row; char str; scanf("%d %c", &col, &str); if(col % 2 == 0) row = col / 2; else row = (col + 1) / 2; for(int i = 0; i < row; i++) { for(int j = 0; j < col; j++) { if(i == 0 || i == row - 1) { printf("%c", str); }else { if(j == 0 || j == col - 1) { printf("%c", str); }else{ printf(" "); } } } printf("\n"); } return 0; }
CodeUp-1934
1. 題目再現(xiàn)
題目描述
輸入一個數(shù)n,然后輸入n個數(shù)值各不相同叛买,再輸入一個值x砂代,輸出這個值在這個數(shù)組中的下標(biāo)(從0開始,若不在數(shù)組中則輸出-1)率挣。輸入
測試數(shù)據(jù)有多組刻伊,輸入n(1<=n<=200),接著輸入n個數(shù)椒功,然后輸入x捶箱。輸出
對于每組輸入,請輸出結(jié)果。樣例輸入
4
1 2 3 4
3
樣例輸出
2
2. 題目思考
題目還是較為簡單动漾,主要掌握一個點(diǎn):
- 控制臺輸入內(nèi)容轉(zhuǎn)化為int數(shù)據(jù)
3. 實(shí)現(xiàn)方式
-
c++實(shí)現(xiàn)
#include <cstdio> int main() { int size; scanf("%d", &size); int arr[size] = {0}; for(int i = 0; i < size; i++) { scanf("%d", &arr[i]); } int target; scanf("%d", &target); for(int i = 0; i < size; i++) { if(arr[i] == target) { printf("%d\n", i); break; } if(i == (size - 1) && arr[i] != target){ printf("-1\n"); } } return 0; }
CodeUp-1928
1. 題目再現(xiàn)
題目描述
有兩個日期讼呢,求兩個日期之間的天數(shù),如果兩個日期是連續(xù)的我們規(guī)定他們之間的天數(shù)為兩天谦炬。輸入
有多組數(shù)據(jù)悦屏,每組數(shù)據(jù)有兩行,分別表示兩個日期键思,形式為YYYYMMDD輸出
每組數(shù)據(jù)輸出一行础爬,即日期差值樣例輸入
20130101
20130105樣例輸出
5
2. 題目思考
題目還是較為復(fù)雜,主要掌握兩個點(diǎn):
- 控制臺輸入內(nèi)容轉(zhuǎn)化為int數(shù)據(jù)
- 搞清楚閏年平年吼鳞,怎么計算
3. 實(shí)現(xiàn)方式
-
c++實(shí)現(xiàn)
#include<cstdio> int disFromFirstDay(int year, int month, int day); bool isCommonYear(int year); int arr[13][2] = {{0, 0}, {31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}}; int main() { int startDate, endDate; scanf("%d", &startDate); scanf("%d", &endDate); int startDisNum = disFromFirstDay(startDate / 10000, (startDate % 10000) / 100, startDate % 100); int endDisNum = disFromFirstDay(endDate / 10000, (endDate % 10000) / 100, endDate % 100); //printf("%d:%d\n", startDisNum, endDisNum); int sumDays = 0; for(int i = startDate / 10000; i < endDate / 10000; i++) { if(isCommonYear(i)) { sumDays += 366; }else{ sumDays += 365; } } sumDays = sumDays + endDisNum - startDisNum + 1; printf("%d\n", sumDays); return 0; } int disFromFirstDay(int year, int month, int day) { int sumDays = 0; if(isCommonYear(year)) { for(int i = 1; i < month; i++) { sumDays += arr[i][1]; } sumDays += day; }else { for(int i = 1; i < month; i++) { sumDays += arr[i][0]; } sumDays += day; } return sumDays; } bool isCommonYear(int year) { return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0; }