c++打印一个沙漏。输入一个整数n,符号的行数(n是大于1的奇数)输出使用“*”打印沙漏符号
请使用c++,别看题目上的pascal,用c++
#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; }