PAT 1027 列印沙漏
題目分析:
對於輸入的正整數N(N < 1000),首先計算出沙漏的最大行數line。
假設沙漏的行數的x,需要的字元為f(x),通過數學公式的計算得到f(x)與x的關係,關係如下:
這樣對於屬於的N我們就可以得到沙漏的行數,就可以按照題目要求的格式打印出來。
程式碼如下:
#include <stdio.h> #include <math.h> int main(void) { int num = 0; char ch = 0; int line = 0; while((scanf("%d %c",&num,&ch) != EOF) && (num <= 1000)) { /*得到應列印的行數*/ line = (int)sqrt(2*num + 2) - 1; int index = 0 , j = 0; /** 得到上半部分 */ for(index = line; index >= 1; index = index - 2) { for(j = 0;j < (line - index)/2 ;j ++) printf(" "); for(j = 0; j < index; j++ ) printf("%c",ch); printf("\n"); } /** 得到下半部分 */ for(index = 3; index <= line; index = index + 2) { for(j = 0;j < (line - index)/2 ;j ++) printf(" "); for(j = 0; j < index; j++ ) printf("%c",ch); printf("\n"); } printf("%d\n",num - (line+3)*(line-1)/2 - 1); } return 0; }
相關推薦
PAT 1027 列印沙漏
題目分析: 對於輸入的正整數N(N < 1000),首先計算出沙漏的最大行數line。 假設沙漏的行數的x,需要的字元為f(x),通過數學公式的計算得到f(x)與x的關係,關係如下: 這樣
PAT乙級 1027 列印沙漏
測試點0、3通過,但1、2執行超時,不知道問題出在哪裡。以下是程式碼: #include<stdio.h> int main(){ int N,useful=1,useless,first_row;//給定字元數、可用字元數、無用字元數、第一行字元數 char ch;//
註釋“PAT 乙級 1027. 列印沙漏(20) Java版”——讓你輕鬆讀懂
尊重原作者,原文資訊如下。 原文作者:柳婼 來源:CSDN 原文:https://blog.csdn.net/liuchuo/article/details/56676279 版權宣告:本文為博主原創文章,轉載請附上博文連結! 我只是對其程式碼按自己的理解做了註釋,
PAT乙級1027列印沙漏
題目描述: 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。 給定任意N個符號,不一定能正好組
PAT (Basic Level) Practice 1027 列印沙漏(20)
此題連結:https://pintia.cn/problem-sets/994805260223102976/problems/994805294251491328 1027 列印沙漏(20)(20 point(s)) 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”
PAT C語言 1027 列印沙漏 (20 分)
PAT C語言 1027 列印沙漏 (20 分) #include<stdio.h> int main() { int n,M; char c; scanf("%d %c", &n, &c); /* 獲得上三角共有多少行 這
PAT (Basic Level) Practice (中文)1027 列印沙漏 (20 分)(C++)
1027 列印沙漏 (20 分) 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再
PAT乙1027. 列印沙漏(20)
題目在這裡 1027. 列印沙漏(20) 時間限制 200 ms 記憶體限制 65536 kB 程式碼長度限制
PAT(乙級)1027 列印沙漏
題目描述: 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。 給定任意N個符號,
【PAT 乙級】1027 列印沙漏
本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。給定任意N個符號,不一定
pat乙級真題:1027. 列印沙漏(20)
題目連結 題目思路 由於輸入為不大於1000的整數,於是構建一個hourglass[50][99]儲存一個沙漏的上半部分。0代表空格,1代表輸入的特殊符號。然後計算出需要輸出的層數, 再把陣列中的對應部分輸出即可。 注意事項 1
PAT乙級1027 列印沙漏
本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 ***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。 給定任意N
pat乙級1027. 列印沙漏(20)——二維陣列輸出和直接輸出兩種方法實現
1027. 列印沙漏(20)時間限制200 ms記憶體限制65536 kB程式碼長度限制8000 B判題程式Standard作者CHEN, Yue本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印***** *** * *** *
PAT乙級—1027. 列印沙漏(20)-native
本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 ***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小
PAT乙級 列印沙漏
列印沙漏 (20 分) 題目描述: 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 ***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到
1027. 列印沙漏(20)(C++)
本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符
乙級 1027 列印沙漏
本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。給定任意N個符號,不一定
PAT——1027. 打印沙漏
數量 組成 tin 有一個 循環 不能 erl scan ann 本題要求你寫個程序把給定的符號打印成沙漏的形狀。例如給定17個“*”,要求按下列格式打印 ***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰
PAT 1027. 打印沙漏
奇數 程序 可能 cnblogs using strong ace pac post 打印沙漏 本題要求你寫個程序把給定的符號打印成沙漏的形狀。例如給定17個“*”,要求按下列格式打印 ***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個
PAT練習集天梯賽L1-002. 列印沙漏--JAVA
本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 ***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。 給定任意N個符號