https://pintia.cn/problem-sets/994805260223102976/problems/994805294251491328
打印沙漏,不熟练的话会有点烦。
#include<iostream>
using namespace std;
#include<iostream>
using namespace std;
int main(){
int num, pre, odd=-1;
int star, space, temp, flag=0;
char ch;
string a;
cin >> num >> ch;
while(num>=0){
odd += 2;
pre = num;
if(odd==1){
num -= odd;
}else{
num -= odd * 2;
}
}
odd -= 2;
star = odd;
// 画星
for(int j=0; j<odd; j++){
// 空格的个数
space = (odd-star)/2;
// 打印部分
for(int p=0; p<space; p++){
a += " ";
}
for(int q=0; q<star; q++){
a += ch;
}
a += "\n";
// 分界处
if(star==1)
flag = 1;
// 星星的个数
if(flag == 0){
star -= 2;
}else{
star += 2;
}
}
cout << a << pre << endl;
return 0;
}
本文介绍如何使用C++编程语言实现一个简单的沙漏图案打印功能,通过递归和控制字符输出,展示基础算法在艺术效果上的应用。
5150

被折叠的 条评论
为什么被折叠?



