首页 > 电脑

c++打印一个沙漏。输入一个整数n,符号的行数(n是大于1的奇数)输出使用“*”打印沙漏符号

更新时间2022-08-04 08:15:53

请使用c++,别看题目上的pascal,用c++
c++打印一个沙漏。 输入一个整数n,符号的行数(n是大于1的奇数) 输出 使用“*”打印沙漏符号

#include<iostream> using namespace std; int main() { int n; char symbol; cin >> n >> symbol; if (n < 1) return 0; n = n - 1; int max_row = 1; int row_num = 0; while(n >= 0){ if (n - 2 * (max_row + 2) < 0) break; max_row += 2; ++row_num; n -= max_row * 2; } for (int i = 0; i < row_num; i++){ for (int j = 0; j < i; j++){ cout << " "; } for (int j = 0; j < max_row - 2 * i; j++){ cout << symbol; } cout << endl; } for (int i = row_num; i >= 0; i--){ for (int j = 0; j < i; j++){ cout << " "; } for (int j = 0; j < max_row - 2 * i; j++){ cout << symbol; } cout << endl; } cout << n; return 0; } 2、素数对猜想 思路:判断素数的函数直接默写;因为判断相邻素数,直接用一个变量记录上一个素数,再与新得到的素数比较 #include<iostream> using namespace std; bool isPrime(int num){ if (num == 0 || num == 1) return false; for (int i = 2; i * i <= num; i++){ if (num % i == 0) return false; } return true; } int main() { int n; cin >> n; int count = 0; int lastPrime = 2; for (int i = 3; i <= n; i++){ if (isPrime(i)){ if (i - lastPrime == 2) ++count; lastPrime = i; } } cout << count; return 0; }

相关标签:沙漏

上一篇:请教大神,我想让一个工作表的复选框,在勾选的时候显示红色,怎么编写宏

下一篇:本站不承载具体内容,仅做链接跳转、数据统计之用