2017.03.18
5个数求最值
描述
设计一个从5个整数中取最小数和最大数的程序
输入
输入只有一组测试数据,为五个不大于1万的正整数
输出
输出两个数,第一个为这五个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。
样例输入
1 2 3 4 5
样例输出
1 5
代码实现
#include <iostream>
using namespace std;
int main(){
int num[5];
int min,max;
for(int i=0;i<5;i++){
cin>>num[i];
}
min = max = num[0];
for(int j=0;j<5;j++){
if(min>num[j]){
min = num[j];
}
if(max < num[j]){
max = num[j];
}
}
cout<<min<<" "<<max;
return 0;
}
水仙花数
描述
请判断一个数是不是水仙花数。
其中水仙花数定义各个位数立方和等于它本身的三位数。
输入
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)
输入0表示程序输入结束。
输出
如果n是水仙花数就输出Yes
否则输出No
样例输入
153
154
0
样例输出
Yes
No
代码实现
#include <iostream>
#include<stdio.h>
#include<vector>
using namespace std;
int main(){
vector<string> v;
int temp;
while(true){
cin>>temp;
if(temp == 0){
break;
}else{
int sum = 0,num = temp;
for(;num>0;num/=10){
sum += (num%10) * (num%10)*(num%10);
}
if(temp == sum){
v.push_back("Yes");
}else{
v.push_back("No");
}
}
}
for(int i=0;i<v.size();i++){
cout<<v[i]<<endl;
}
return 0;
}
三个数从小到大排序
描述
现在要写一个程序,实现给三个数排序的功能
输入
输入三个正整数
输出
给输入的三个正整数排序
样例输入
20 7 33
样例输出
7 20 33
代码实现
#include <iostream>
using namespace std;
int main(){
int num[3];
for(int i=0;i<3;i++)
cin>>num[i];
for(int i=0;i<3;i++){
int min = num[i];
for(int j=i+1;j<3;j++){
if(num[i]>num[j]){
int temp = num[j];
num[j] = num[i];
num[i] = temp;
}
}
}
for(int i=0;i<3;i++){
cout<<num[i]<<" ";
}
return 0;
}
2017.03.19
素数求和问题
描述
现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。
输入
第一行给出整数M(0<M<10)代表多少组测试数据
每组测试数据第一行给你N,代表该组测试数据的数量。
接下来的N个数为要测试的数据,每个数小于1000
输出
每组测试数据结果占一行,输出给出的测试数据的所有素数和
样例输入
3
5
1 2 3 4 5
8
11 12 13 14 15 16 17 18
10
21 22 23 24 25 26 27 28 29 30
样例输出
10
41
52
代码实现
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int getSum(int *num,int size){
int result = 0;
for(int i=0;i<size;i++){
int number = num[i];
bool istrue = true;
if(number == 1){
continue;
}
if(number == 2 || number == 3){
result += number;
continue;
}
for(int j= 2;j<=sqrt(number);j++){
if(number % j == 0){
istrue = false;
break;
}
}
if(istrue){
result += number;
}
}
return result;
}
int main(){
int n;
cin>>n;
int *result = new int[n];
for(int i=0;i<n;i++){
int group;
cin>>group;
int *num = new int[group];
for(int j=0;j<group;j++){
cin>>num[j];
}
result[i] = getSum(num,group);
delete []num;
}
for(int i=0;i<n;i++)
cout<<result[i]<<endl;
delete []result;
return -1;
}
网友评论