A. 100到n以内的水仙花数
题目描述
若3位数ABC满足ABC=A3+B3+C3,则称其为水仙花数.
例如:153=13+53+3^3,所以153是水仙花数.
你的任务是输出100~n中所有的水仙花数.每行输出一个。
输入
输入n,表示100到n之间的范围
输出
请输出100~n中所有的水仙花数.每行输出一个.
样例输出只输出一个水仙花数,你必须将所有的水仙花数都输出。
输入样例
200
输出样例
153
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
void solve() {
int n;
cin >> n;
for (int i = 100; i <= n; i++) {
int a = i % 10;
int b = i / 10 % 10;
int c = i / 100;
if (i == a * a * a + b * b * b + c * c * c) {
cout << i << '\n';
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
B. 求a+aa+aaa+…+aa…a之和(循环)
题目描述
编程计算a+aa+aaa+…+aa…a(n个a)的值,a的取值范围为0—9,n的取值范围为0—5。n和a的值都由键盘输入,均为整数。
输入
键盘输入a和n
输出
求和
输入样例
2
4
输出样例
2468
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
void solve() {
int a, n;
cin >> a >> n;
long long sum = 0;
int add = a;
for (int i = 1; i <= n; i++) {
sum += add;
add *= 10;
add += a;
}
cout << sum;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
A. 图案
题目描述
用循环语句打印一个n层图案,从上往下,每层的‘#’的数量分别是1,3,5,…,2*n-1
例如n=3为
#
###
#####
输入
输入一个n,表示要打印图案的层数
输出
输出图案
输入样例
3
输出样例
#
###
#####
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
bool isPrime(int x) {
for (int i = 2; i < x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
void solve() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 0; j < n - i; j++) {
cout << " ";
}
for (int k = 1; k <= 2 * i - 1; k++) {
cout << '#';
}
cout << '\n';
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
B. 完数判断(双层循环)
题目描述
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1,2,3,而6=1+2+3;因此是“完数”。编程对输入的数字(假设该数字小于1000)判断是否是“完数”并输出其所有因子。
输入
判断的次数和每次输入的数字
输出
该数是否完数和其所有因子
输入样例
3
5
32
6
输出样例
no,1
no,1,2,4,8,16
yes,1,2,3
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
void solve() {
int t;
cin >> t;
while (t--) {
int x;
cin >> x;
vector<int> path;
int sum = 0;
for (int i = 1; i < x; i++) {
if (x % i == 0) {
sum += i;
path.push_back(i);
}
}
if (sum == x) {
cout << "yes,";
for (int i = 0; i < path.size(); i++) {
if (i != path.size() - 1) {
cout << path[i] << ",";
}
else {
cout << path[i];
}
}
cout << '\n';
}
else {
cout << "no,";
for (int i = 0; i < path.size(); i++) {
if (i != path.size() - 1) {
cout << path[i] << ",";
}
else {
cout << path[i];
}
}
cout << '\n';
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
C. 数字输出
题目描述
给出一个不多于5位的正整数,要求如下:
1、求出它是几位数
2、分别输出每一位上的数字,数字之间用1个空格隔开
3、按逆序输出各位数字,例如原数为321,应输出123
输入
输入一个不大于5位的正整数
输出
第一行输出位数
第二行从左到右输出每一位上的数字,数字间用一个空格分开,注意最后一个数字后面没有空格
第三行按逆序输出这个数
输入样例
12345
输出样例
5
1 2 3 4 5
54321
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
void solve() {
int num;
cin >> num;
int cnt_num = cnt(num);
cout << cnt_num << '\n';
int tmp = num;
for (int i = 0; i < cnt_num; i++) {
int c = num / pow(10, cnt_num - i - 1);
if (i != cnt_num - 1) {
cout << c << " ";
}
else {
cout << c;
}
num -= c * pow(10, cnt_num - i - 1);
}
cout << '\n';
while (tmp) {
cout << tmp % 10;
tmp /= 10;
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
D. 素数和(双层循环)
题目描述
输入数字范围n,m(n>=0, m>=0, n<=m),输出[n,m]区间中的所有素数和。
输入
测试次数T
每组测试数据一行,数字范围n m
输出
对每组测试数据,如果有素数,输出二行:
第一行:输出[n,m]间的素数
第二行:输出[n,m]间的素数和
如果没有素数,输出NO
输入样例
3
0 10
10 30
24 28
输出样例
2 3 5 7
17
11 13 17 19 23 29
112
NO
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
bool isPrime(int x) {
for (int i = 2; i < x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
void solve() {
int t;
cin >> t;
while (t--) {
int a, b;
cin >> a >> b;
int sum = 0;
for (int i = max(2, a); i <= b; i++) {
if (isPrime(i)) {
cout << i << " ";
sum += i;
}
}
if (sum == 0) {
cout << "NO" << '\n';
}
else {
cout << '\n' << sum << '\n';
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
A. 求一行字符中字母、空格、数字等的个数(循环)
题目描述
输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
输入
一行字符
输出
统计值
输入样例
aklsjflj123 sadf918u324 asdf91u32oasdf/.';123
输出样例
23 16 2 4
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <cstring>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
bool isPrime(int x) {
for (int i = 2; i < x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
void solve() {
string input;
getline(cin, input);
int num_en = 0, num_num = 0, num_space = 0, num_others = 0;
for (char c : input) {
if (isalpha(c)) {
num_en++;
}
else if (isdigit(c)) {
num_num++;
}
else if (isspace(c)) {
num_space++;
}
else {
num_others++;
}
}
cout << num_en << " " << num_num << " " << num_space << " " << num_others;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
B. 迭代法求平方根(循环)
题目描述
用迭代法求a的平方根。求a的平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n]) 要求前后两次求出的得差的绝对值少于0.00001。 输出保留3位小数
输入
a
输出
a的平方根X
输入样例
4
输出样例
2.000
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <cstring>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
bool isPrime(int x) {
if (x < 2) {
return false;
}
for (int i = 2; i < x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
bool isHuiwen(int num) {
string s = to_string(num);
int len = s.size();
for (int i = 0; i < len / 2; i++) {
if (s[i] != s[len - i - 1]) return false;
}
return true;
}
void solve() {
double ans;
double pre = 0.00001;
int a;
cin >> a;
double x = a;
do {
ans = 0.5 * (x + a / x);
if (fabs(ans - x) < pre)
break;
x = ans;
} while (true);
cout << fixed << setprecision(3) << ans << endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
C. 箱子匹配
题目描述
每个箱子都有长宽高,我们需要判断一个箱子能否放入另一个箱子中。
例如有箱子A的尺寸是 3 x 4 x 5,箱子B的尺寸 是 5 x 6 x 4,经过比较判断,可以知道箱子A能够放入箱子B中,我们就说箱子A匹配箱子B。
注意,当两个箱子尺寸相等,我们也认为它们匹配。
输入
第一行输入参数T,表示有T个测试实例
第二行输入第1组实例的箱子A的长、宽、高,输入数值为小于1000的自然数
第三行输入第1组实例的箱子B的长、宽、高,输入数值为小于1000的自然数
以此类推
输出
如果两个箱子匹配,输出yes,否则输出no。逐行输出每一组的箱子匹配结果。
输入样例
3
3 4 5
5 6 4
5 6 4
3 4 5
5 6 7
7 4 7
输出样例
yes
yes
no
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <cstring>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
bool isPrime(int x) {
if (x < 2) {
return false;
}
for (int i = 2; i < x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
bool isHuiwen(int num) {
string s = to_string(num);
int len = s.size();
for (int i = 0; i < len / 2; i++) {
if (s[i] != s[len - i - 1]) return false;
}
return true;
}
bool check(int x, int y, int xx, int yy, int r) {
return (pow(x - xx, 2) + pow(y - yy, 2) <= pow(r, 2));
}
void solve() {
int T;
cin >> T;
while (T--) {
int A[3], B[3];
cin >> A[0] >> A[1] >> A[2];
cin >> B[0] >> B[1] >> B[2];
bool flag = false;
if ((A[0] >= B[0] && A[1] >= B[1]) || (B[0] >= A[0] && B[1] >= A[1])){
flag = true;
}
cout << (flag ? "yes" : "no") << endl;
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
D. 打印漏斗
题目描述
打印出一个底部有n个*的漏斗
输入
第一行输入一个T;表示有T组测试数据
下面每一行都有一个n表示漏斗底部*的个数
n保证是奇数
输出
输出打印结果
两个测试答案之间要用换行分割
输入样例
3
11
13
15
输出样例
***********
*********
*******
*****
***
*
***
*****
*******
*********
***********
*************
***********
*********
*******
*****
***
*
***
*****
*******
*********
***********
*************
***************
*************
***********
*********
*******
*****
***
*
***
*****
*******
*********
***********
*************
***************
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <cstring>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
bool isPrime(int x) {
for (int i = 2; i < x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
void solve() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
for (int i = n; i > 0; i -= 2) {
int spaces = (n - i) / 2;
for (int j = 0; j < spaces; ++j) {
cout << " ";
}
for (int j = 0; j < i; ++j) {
cout << "*";
}
cout << endl;
}
for (int i = 3; i <= n; i += 2) {
int spaces = (n - i) / 2;
for (int j = 0; j < spaces; ++j) {
cout << " ";
}
for (int j = 0; j < i; ++j) {
cout << "*";
}
cout << endl;
}
cout << '\n';
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
E. 砖石奖励(循环)
题目描述
海盗们决定用“投环套物”的方式来奖励最近一次行动中贡献最大的人。他们将1克拉钻石排成矩阵,通过投掷圆环决定奖励的钻石的数量。假设每个钻石的x和y坐标都是0到99的整数,输入矩阵长、宽及圆形,计算这个人能获得多少克拉的钻石。
输入
测试次数
每组测试数据包含两行,第一行为矩阵的行数和列数,第二行为圆心坐标点及半径。
输出
对每组测试数据,输出圆形内的钻石克拉数(包括边界上的钻石)。
输入样例
2
4 4
2 1 1
10 10
5 0 3
输出样例
5
18
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <cstring>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
bool isPrime(int x) {
if (x < 2) {
return false;
}
for (int i = 2; i < x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
bool isHuiwen(int num) {
string s = to_string(num);
int len = s.size();
for (int i = 0; i < len / 2; i++) {
if (s[i] != s[len - i - 1]) return false;
}
return true;
}
bool check(int x, int y, int xx, int yy, int r) {
return (pow(x - xx, 2) + pow(y - yy, 2) <= pow(r, 2));
}
void solve() {
int t;
cin >> t;
while (t--) {
int a, b;
cin >> a >> b;
int xx, yy, r;
cin >> xx >> yy >> r;
int ans = 0;
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
if (check(i, j, xx, yy, r)) {
ans++;
}
}
}
cout << ans << '\n';
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
F. 五位以内的对称素数(双层循环)
题目描述
判断一个数是否为对称且不大于五位数的素数。
意思是小于100,000的数
输入
第一行:测试数据组数T
接下来包含T行,每行由1个不大于五位数的正整数构成。
输出
对于每个正整数,如果该数是不大于五位数的对称素数,则输出”Yes”,否则输出”No”,每个判断结果单独列一行。
输入样例
3
11
101
272
输出样例
Yes
Yes
No
代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <cstring>
#define PI 3.1415926
using namespace std;
int cnt(int num) {
int ans = 0;
while (num) {
num /= 10;
ans++;
}
return ans;
}
bool isPrime(int x) {
if (x < 2) {
return false;
}
for (int i = 2; i < x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
bool isHuiwen(int num) {
string s = to_string(num);
int len = s.size();
for (int i = 0; i < len / 2; i++) {
if (s[i] != s[len - i - 1]) return false;
}
return true;
}
void solve() {
int t;
cin >> t;
while (t--) {
int num;
cin >> num;
if (isHuiwen(num) && isPrime(num)) {
cout << "Yes" << endl;
}
else {
cout << "No" << endl;
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
标签:return,OJ,int,ans,++,num,深圳大学,程序设计,include
From: https://blog.csdn.net/qq_73179413/article/details/145062078