ACM水题

2017.03.18

5个数求最值

描述
设计一个从5个整数中取最小数和最大数的程序
输入
输入只有一组测试数据,为五个不大于1万的正整数
输出
输出两个数,第一个为这五个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。
样例输入

1 2 3 4 5

样例输出

1 5

代码实现

#include 
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 
#include
#include
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;icout<return 0;
}

三个数从小到大排序

描述
现在要写一个程序,实现给三个数排序的功能

输入
输入三个正整数
输出
给输入的三个正整数排序
样例输入

20 7 33

样例输出

7 20 33

代码实现

#include 
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<" ";
    }
    return 0;
}

你可能感兴趣的:(数据结构-算法)