• 汽水瓶 明明的随机数 进制转换


    1. 汽水瓶

     1 /*
     2 递归问题
     3 3个瓶子换1瓶水+1个空瓶子,两个瓶子换1瓶水+0个空瓶子,1个瓶子换0瓶水。
     4 f(1) = 0
     5 f(2) = 1
     6 f(3) = 1
     7 f(4) = f(2)+1    //4个瓶子,其中3个可以换1瓶水+1个空瓶,所以是f(2)+1
     8 f(5) = f(3)+1    //3个瓶子换1瓶水+1个空瓶,所以是f(3)+1
     9 ...
    10 f(n) = f(n-2)+1 */
    11 #include <iostream>
    12   
    13 using namespace std;
    14   
    15 int f(int n)
    16 {
    17     if(n==1) return 0;
    18     if(n==2) return 1;
    19     return f(n-2)+1;
    20 }
    21   
    22 int main()
    23 {
    24     int n;
    25     while(cin >> n){
    26         if(n==0)
    27             break;
    28         cout<<f(n)<<endl;
    29     }
    30     return 0;
    31 }
    View Code

    2.   明明的随机数

    明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

    Input Param

    n                       输入随机数的个数

    inputArray        n个随机整数组成的数组

    Return Value

    OutputArray     输出处理后的随机整数

    注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。

    样例输入解释:

    样例有两组测试

    第一组是3个数字,分别是:2,2,1。

    第二组是11个数字,分别是:10,20,40,32,67,40,20,89,300,400,15。

    输入描述:
    输入多行,先输入随机整数的个数,再输入相应个数的整数
    
    输出描述:
    返回多行,处理后的结果
    
    输入例子1:
    3
    2
    2
    1
    11
    10
    20
    40
    32
    67
    40
    20
    89
    300
    4000
    15
    
    输出例子1:
    1
    2
    10
    15
    20
    32
    40
    67
    89
    300
    400
    

     桶排序

     1 #include <iostream>
     2 using namespace std;
     3 
     4 int main() {
     5     int N, n;
     6     while (cin >> N) {
     7         int a[1001] = { 0 };
     8         while (N--) {
     9             cin >> n;
    10             a[n] = 1;
    11         }
    12         for (int i = 0; i < 1001; i++)
    13             if (a[i])
    14                 cout << i << endl;
    15     }
    16     return 0;
    17 }
    View Code

    STL set容器

     1 #include<iostream>
     2 #include<set>
     3   
     4 using namespace std;
     5   
     6 int main(){
     7     int loop = 0;
     8     while (cin >> loop)                   //看题目,set容器
     9     {
    10         int a[1000], tem, i = 0;
    11         for (int i = 0; i < loop; i++) cin >> a[i];
    12         set<int> num(a, a + loop);
    13         for (set<int>::iterator it = num.begin(); it != num.end(); it++){
    14             cout << *it << endl;
    15         }
    16     }
    17     return 0;
    18 }
    View Code
  • 相关阅读:
    C# 综合练习题目 及 答案解析
    SQL数据库子查询练习题及解析
    SQL数据库 连接查询、变量、选择、循环、延时语句等
    SQL数据库中模糊查询、排序、聚合函数、数学函数、字符串函数、时间日期函数、转换、函数转换等
    SQL数据库的创建及简单增删改查语句运用
    SQL数据库简介
    ado.net操作数据库
    轻松美化窗体
    面向对象(委托)
    面向对象(五大原则)
  • 原文地址:https://www.cnblogs.com/wsl96/p/13348237.html
Copyright © 2020-2023  润新知