更多课程 选择中心

C/C++培训
达内IT学院

400-996-5531

C++ 算法题解:打印沙漏、素数对猜想问题详解

  • 发布:C++培训
  • 来源:资料库
  • 时间:2020-08-03 14:57

1、打印沙漏

思路:先用一个循环计算出有多少行,最长行有多少个符号,这里计算时直接用N去减,可以得到剩余的符号数;后面直接用计算得到的行数和每行多少个去打印图形

#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;

}

当你还在担心能否就业时,达内学员提前被企业录取;当你转辗于各大招聘会时,达内学员收到了高薪offer;当你在各大招聘网站投递简历时,达内学员中有人一毕业进入五百强名企。所以选择很重要。找C++培训班,选达内就对了。

版权声明:转载文章来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:C++中typedef enum 和 enum
下一篇:C++ 算法题解:数组元素循环右移问题详解

超全的C语言标识符知识

C指针——指针类型转换

C指针——指针和结构类型的关系

C指针——数组和指针的关系

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省