问题 A: 输出梯形
[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB
题目描述
输入一个高度h,输出一个高为h,上底边为h的梯形。
输入
一个整数h(1<=h<=1000)。
输出
h所对应的梯形。
样例输入 Copy
5
样例输出 Copy
*****
*******
*********
代码:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int n,m;while(cin>>n){
if(n>=1&&n<=1000){
int count=n;int kg=n*2;for(int i=0;i<n;i++){
kg-=2;for(int k=0;k<kg;k++){
cout<<" ";}for(int j=0;j<count;j++){
cout<<"*";}count+=2;if(i!=n-1)cout<<endl;}cout<<endl;} }}
效果图:
问题 B: Hello World for U
[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB
题目描述
Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. For example, “helloworld” can be printed as:
h d
e l
l r
lowo
That is, the characters must be printed in the original order, starting top-down from the left vertical line with n1 characters, then left to right along the bottom line with n2 characters, and finally bottom-up along the vertical line with n3 characters. And more, we would like U to be as squared as possible – that is, it must be satisfied that n1 = n3 = max { k| k <= n2 for all 3 <= n2 <= N } with n1 + n2 + n3 - 2 = N.
输入
Each input file contains one test case. Each case contains one string with no less than 5 and no more than 80 characters in a line. The string contains no white space.
输出
For each test case, print the input string in the shape of U as specified in the description.
样例输入 Copy
helloworld!
样例输出 Copy
h !
e d
l l
lowor
代码:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string n;while(cin>>n){
getchar();int len=n.length();int side=(len+2)/3;int mid=len-side*2;for(int i=0;i<side;i++){
if(i!=side-1){
cout<<n[i];for(int j=0;j<mid;j++){
cout<<" ";}cout<<n[len-i-1]<<endl;}else{
for(int t=i;t<mid+i+2;t++){
cout<<n[t];}cout<<endl;}}}
}
效果图:
问题 C: 等腰梯形
[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB
题目描述
请输入高度h,输入一个高为h,上底边长为h 的等腰梯形(例如h=4,图形如下)。
输入
输入第一行表示样例数m,接下来m行每行一个整数h,h不超过10。
输出
对应于m个case输出要求的等腰梯形。
样例输入 Copy
1
4
样例输出 Copy
代码:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int n,t,m;while(cin>>t){
for(int m=0;m<t;m++){
cin>>n;int kg=n-1;int count=n;for(int i=0;i<n;i++){
for(int j=0;j<kg;j++){
cout<<" ";}for(int j=0;j<count;j++){
cout<<"*"; }for(int j=0;j<kg;j++){
cout<<" ";}cout<<endl;kg-=1;count+=2;}}
}
}
效果图:
问题 D: 沙漏图形 tri2str [1*+]
[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 128 MB
题目描述
问题:输入n,输出正倒n层星号三角形。首行顶格,星号间有一空格,效果见样例
输入样例:
3
输出样例:
数据规模 1<= n <=50
代码:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int n;while(cin>>n){
int count=n;for(int i=0;i<n;i++){
for(int t=0;t<i;t++)cout<<" ";for(int j=0;j<count;j++)cout<<"*"<<" ";count--;cout<<endl; } count=n-2;for(int i=1;i<n;i++){
for(int j=0;j<count;j++)cout<<" ";for(int t=0;t<i+1;t++)cout<<"*"<<" ";count--;cout<<endl;}}
}
效果图: