1. 与5无关的数
【问题描述】与5无关的数。一个正整数,如果它能被5整除,或者其某位有数字5,则称该数为与5相关的数。编程让用户输入一正整数n,输出小于等于n的、与5无关的正整数的总个数。
【输入形式】用户输入一个正整数n。
【输出形式】输出小于等于n的、与5无关的正整数的总个数。单独占一行。
【样例输入】10
【样例输出】8
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
int count = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
if (i % 5 == 0)
{
count++;
continue;
}
int j = 0;
j = log10(i);
int f = i;
for (int k = 1; k <= j; k++)
{
f = f / 10;
if (f %10 == 5)
{
count++;
break;
}
}
}
count = n - count;
cout << count;
return 0;
}
2. 找球
【问题描述】找球。设有100个半径分别为1~100米的球,编程找出半径刚过用户体积需要的球。体积由用户输入,程序输出找到的球的半径及体积值。设半径为整型,体积值保留小数点后两位,π取3.1415926参与运算。(考虑同时用到break、continue的方法)
【输入形式】用户输入所找球的体积值。
【输出形式】程序输出找到的球的半径和体积,中间用逗号隔开。单独占一行。
【样例输入】10000
【样例输出】14,11494.04
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
const double pi = 3.1415926;
int v1;
double v2;
cin >> v1;
int i = 1;
for (i; i <= 100; i++)
{
v2 = pi * i * i * i * 4 / 3;
if (v1 <= v2)
break;
}
cout << i << ',' << fixed<<setprecision(2)<<v2;
return 0;
}
3. 素数
【问题描述】
从控制台输入整数n(n>=1),计算并输出从1到n之间(包括n)个位为1的所有素数,若没有符合要求的素数,则输出-1。
【输入形式】
从控制台输入整数n。
【输出形式】
按照从小到大的顺序,在一行上输出1到n之间(包括n)个位为1的所有素数,素数之间用一个空格分隔,若没有符合要求的素数,则输出-1。
【样例输入】
120
【样例输出】
11 31 41 61 71 101
【样例说明】
输入的整数n为120,1到120之间个位为1的所有素数为11、31、41、61、71、101。
#include<iostream>
using namespace std;
int main()
{
int n, count = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
for (int j=2; j <= i; j++)
{
if (j == i && i % 10 == 1)
{
cout << i << ' ';
count++;
}
if (i % j == 0)
break;
}
}
if (count == 0)
cout << -1;
return 0;
}
4. 偶数大王
【问题描述】给你一堆杂乱无章的正整数,里面有若干个奇数和偶数(至少有一个偶数),你能帮我找出这堆数中最大的偶数吗?请输出这位偶数大王。
【输入形式】
第一行仅一个数N(2<N<1000),即这堆数的个数
第二行有N个正整数,每个数的范围不超过30000
【输出形式】
输出所求的偶数大王
【样例输入】
3
123 456 7890
【样例输出】7890
#include<iostream>
using namespace std;
int main()
{
int n, j, max = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> j;
if (j > max && j % 2 == 0)
max = j;
}
cout << max;
return 0;
}
5. 编程题《验证歌德巴赫猜想》
【问题描述】
验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如,6=3+3,8=3+5,......,18=5+13。要求将6~100之间的偶数都表示为两个素数之和,输出时一行输出五组。
【输入形式】
无输入
【输出形式】
按从小到大、每组五行
每组的格式为:四位=2位+2位。
等号和加号两侧无空格。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int count = 0;
for (int i = 6; i <= 100; i += 2)
{
for (int j = 2; j <= i/2; j++)
{
for (int k = 2; k <= j; k++)
{
if (k == j)
{
int l = i - k;
for (int p = 2; p <= l; p++)
{
if (p == l)
{
count++;
cout << setw(4) << i << '=' << setw(2) << k << '+' << setw(2) << l;
if (count % 5 == 0)
cout << endl;
j = i / 2 + 1;
k = j + 1;
}
if (l % p == 0)
break;
}
}
if (j % k == 0)
break;
}
}
}
return 0;
}