zoukankan      html  css  js  c++  java
  • huawei 三套题

    链接:https://www.nowcoder.com/questionTerminal/fe298c55694f4ed39e256170ff2c205f

    有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝? 

    输入描述:

    输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这一行。

    输出描述:

    对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

    示例1

    输入

    3
    10
    81
    0
    

    输出

    1
    5
    40


    自己写的
     1 #include <iostream>
     2 using namespace  std;
     3  
     4 int main()
     5 {
     6     int m=10, n;
     7         while (m--&&cin >> n&&n >= 1 && n <= 100)
     8         {
     9                 int Y = 0;
    10                 int sum = 0;
    11                 while (n >= 3)
    12                 {
    13                     sum += n / 3;
    14                     n = n / 3 + n % 3;
    15                 }
    16                 if (n == 2)
    17                 {
    18                     sum += 1;
    19                 }
    20                 if (n == 1);
    21                 cout << sum << endl;
    22                 sum = 0;
    23         }
    24     return 0;
    25 }

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

    链接:https://www.nowcoder.com/questionTerminal/3245215fffb84b7b81285493eae92ff0
    来源:牛客网

    [编程题]明明的随机数

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

     

     

    Input Param 

         n               输入随机数的个数     

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

         

    Return Value

         OutputArray    输出处理后的随机整数

     


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


     

     


    输入描述:

    输入多行,先输入随机整数的个数,再输入相应个数的整数



    输出描述:

    返回多行,处理后的结果

    示例1

    输入

    11
    10
    20
    40
    32
    67
    40
    20
    89
    300
    400
    15
    

    输出

    10
    15
    20
    32
    40
    67
    89
    300
    400





    注意输入输出

     1 链接:https://www.nowcoder.com/questionTerminal/3245215fffb84b7b81285493eae92ff0
     2 来源:牛客网
     3 
     4 #include <iostream>
     5 using namespace std;
     6 int main() {
     7     int N, n;
     8     while (cin >> N) {
     9         int a[1001] = { 0 };
    10         while (N--) {
    11             cin >> n;
    12             a[n] = 1;
    13         }
    14         for (int i = 0; i < 1001; i++)
    15             if (a[i])
    16                 cout << i << endl;
    17     }
    18     return 0;
    19 }//阿西吧

    链接:https://www.nowcoder.com/questionTerminal/8f3df50d2b9043208c5eed283d1d4da6
    来源:牛客网

    [编程题]进制转换

    写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )


    输入描述:

    输入一个十六进制的数值字符串。



    输出描述:

    输出该数值的十进制字符串。

    示例1

    输入

    0xA

    输出

    10




     1 只是将字符串转换成十进制的数,程序就能通过,看来题目的目的只是将十六进制转换成十进制
     2 #include<stdio.h>
     3 #include<string.h>
     4 #include<math.h>
     5 int main()
     6 {
     7     char str[100];
     8     int i=0,count,sum;
     9     while(gets(str))//用于多次输入
    10     {
    11         count=strlen(str);//计算字符串的长度
    12         sum=0;
    13         for(i=count-1;i>=0;i--)//从十六进制个位开始,每位都转换成十进制
    14         {
    15         if(str[i]>='0'&&str[i]<='9')//数字字符的转换
    16         {
    17             sum+=(str[i]-48)*pow(16,count-i-1);
    18         }
    19         else if(str[i]>='A'&&str[i]<='F')//字母字符的转换
    20         {
    21             sum+=(str[i]-55)*pow(16,count-i-1);
    22         }
    23         }
    24         printf("%d
    ",sum);
    25     }
    26     return 0;
    27  }
     1 链接:https://www.nowcoder.com/questionTerminal/8f3df50d2b9043208c5eed283d1d4da6
     2 来源:牛客网
     3 
     4 #include <iostream> 
     5  using namespace std;
     6 
     7  int main()
     8  {
     9      int a;
    10      while(cin>>hex>>a){
    11      cout<<a<<endl;
    12      }
  • 相关阅读:
    day3:python测试题
    day4:Python列表(list)元组( tuple)字典(dict)
    day3:python运算符及数据类型(str)(int)
    2day:Python基础
    1day:了解python
    centos下安装storm
    Linux下添加,删除,修改,查看用户和用户组
    svn默认地址老发生改变,记下默认路径
    hive 遇到的问题及解决方法
    hadoop2.5.2 安装与部署
  • 原文地址:https://www.cnblogs.com/D-DZDD/p/7352787.html
Copyright © 2011-2022 走看看