1036 跟奥巴马一起编程

cpp
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n,m;
char c;
cin>>n>>c;
for (int i = 0; i < n; ++i) {
cout<<c;
}
cout<<endl;
m= round(1.0*n/2)-2;//round里面不能直接写n/2,因为n/2已经是一个整数了
for (int i = 0; i < m; ++i) {
cout<<c;
for (int j = 0; j < n-2; ++j) {
cout<<' ';
}
cout<<c<<endl;
}
for (int i = 0; i < n; ++i) {
cout<<c;
}
return 0;
}
输出梯形

cpp
#include <iostream>
using namespace std;
int main() {
int h;
while(cin>>h){
for (int i = 0; i < h; ++i) {
for (int j = 0; j < 2*h-2*(i+1); ++j) {
cout<<' ';
}
for (int j = 0; j < h+2*i; ++j) {
cout<<'*';
}
cout<<endl;
}
}
return 0;
}
Hello World for U

cpp
#include <iostream>
#include <cstring>
using namespace std;
const int maxn=81;
int main() {
char str[maxn];
cin>>str;
int len= strlen(str);
int side=(len+2)/3;
int mid=len-side*2;
for (int i = 0; i < side-1; ++i) {
cout<<str[i];
for (int j = 0; j < mid; ++j) {
cout<<' ';
}
cout<<str[len-i-1];
cout<<endl;
}
for (int i = side-1; i <=len-side; ++i) {
//一列有side个字符,所以最后一行起始数字的数组下标为side-1
//从末尾往前第side个字符的下标是len-side
cout<<str[i];
}
return 0;
}
等腰梯形

- 注意输出后面的空格
- 注意第一行的空格数是h-1个
cpp
#include <iostream>
using namespace std;
int main() {
int m,h;
while(cin>>m){
for (int i = 0; i < m; ++i) {
cin>>h;
for (int k = 0; k < h; ++k) {
for (int j = 0; j < h-k-1; ++j) {
cout<<' ';
}
for (int j = 0; j < h+2*k; ++j) {
cout<<'*';
}
for (int j = 0; j < h-k-1; ++j) {
cout<<' ';
}
cout<<endl;
}
}
}
return 0;
}
沙漏图形

cpp
#include <iostream>
using namespace std;
int main() {
int n;
while(cin>>n){
for (int i = 0; i < n; ++i) {
for (int j = 0; j < i; ++j) {
cout<<' ';
}
for (int j = 0; j < n-i; ++j) {
if(j<n-i-1) cout<<'*'<<' ';
else cout<<'*';
}
cout<<endl;
}
for (int i = 0; i < n-1; ++i) {
for (int j = 0; j < (n-2-i); ++j) {
cout<<' ';
}
for (int j = 0; j < i+2; ++j) {
if(j<i+1) cout<<'*'<<' ';
else cout<<'*';
}
cout<<endl;
}
}
return 0;
}