zoukankan      html  css  js  c++  java
  • 杭厦地区实习生机考体验测试2015(最大数)

    随机给定10个小于10的数字(出现的数字可能重复),从其中取出3个各不相同的数字可组合出多个不同的3位数,请输出这些3位数中最大的那个3位数。

    样例输入:1 2 3 4 5 6 7 8 9 0

    样例输出:987

     

    算法思路:

    先随机输出10个整数,范围[0,9];

    然后排序,从大到小,用了sort函数,在<algorithm>头文件里;

    然后删除数组中重复数字,这一步卡了很久!!基础功啊基础功!

    最后取数组前三个数,组成一个三位数,Down!

     1 #include "stdafx.h"
     2 #include <iostream>
     3 #include <algorithm>
     4 #include <functional>
     5 
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     int MyNums[10] = {0};
    11     for(int i=0; i<10; ++i)
    12     {
    13         int temp = rand();
    14         if( (temp>=0) && (temp<=9) )
    15             MyNums[i] = temp;
    16         else --i;
    17     }
    18 
    19     cout<<"10个小于10的数字:"<<endl;
    20     for(int i=0; i<10; ++i)
    21         cout<<MyNums[i]<<" ";
    22     cout<<endl;
    23 
    24     int* p = MyNums;
    25     sort(p,p+10,greater<int>());
    26 
    27     cout<<"排序后:"<<endl;
    28     for(int i=0; i<10; ++i)
    29         cout<<MyNums[i]<<" ";
    30     cout<<endl;
    31 
    32     static int j=0;
    33     for(int i=0;i<10;i++)
    34     {
    35         while(MyNums[i] == MyNums[i+1])    
    36             i++;            
    37         MyNums[j++] = MyNums[i];                    
    38     }
    39 
    40     cout<<"删除后:"<<endl;
    41     for(int i=0; i<j; ++i)
    42         cout<<MyNums[i]<<" ";
    43     cout<<endl;
    44 
    45     cout<<"最大的三位数:"<<(100*MyNums[0]+10*MyNums[1]+MyNums[2])<<endl;
    46 
    47     return 0;
    48 }
  • 相关阅读:
    代码是什么
    关于程序
    信息系统分析三原则
    设计的一个原则,妥协,不完美
    Algs4-1.4.30一个栈和一个steque实现的双向队列
    Algs4-1.4.31三个栈实现的双向队列
    Algs4-1.4.29两个栈实现的steque
    Algs4-1.4.27两个栈实现队列
    Algs4-1.4.28一个队列实现的栈
    *Algs4-1.4.26-三点共线-(未解决)
  • 原文地址:https://www.cnblogs.com/Big-Rabbit/p/4383538.html
Copyright © 2011-2022 走看看