• 求最大递增数


    同学发过来个文件,让我帮他做几个题目的,就做了下,贴在这里

    题目:

    描述:
    输入一串数字,找到其中包含的最大递增数。递增数是指相邻的数位从小到大排列的数字。如: 2895345323,递增数有:289,345,23, 那么最大的递减数为345。
    输入:
    输入一串数字,默认这串数字是正确的,即里面不含有字符/空格等情况
    输出:
    输出最大递增数
    样例输入:
    123526897215
    样例输出:
    2689

       1:  #include<iostream>
       2:  #include<stdlib.h>
       3:  #include<cmath>
       4:  #include<vector>
       5:  #include<map>
       6:  #include <string>
       7:  using namespace std;
       8:  int main()
       9:  {
      10:      map<char,int> m;
      11:      for(int i=0;i<10;i++)  //字符映射数字
      12:      {
      13:   
      14:        m['0'+i] = i;
      15:      }
      16:   
      17:      string num;        //存放输入字符串
      18:      cin>>num;
      19:      int length = num.length();
      20:      if(length==1)
      21:       {
      22:      cout<<num<<endl;    //输入只有1个数时,直接输出。
      23:      return 0;
      24:       }
      25:   
      26:      int max = 0;    //用于存放目前最大递增数
      27:      string current = "";
      28:      current = current + num[0];//current
      29:      int temp = 0;       //用于标记当前递增数是否扫描结束,1表示结束
      30:      for(int j =1;j<length;j++)
      31:           {
      32:          int sum = 0;
      33:   
      34:          if(m[num[j]]>m[num[j-1]])
      35:              current = current + num[j];
      36:          else
      37:                temp=1;
      38:                
      39:          if(temp == 1 || j == length-1)     //只有当前递增数扫描结束或到尾部才开始计算当前递增数的值
      40:          {
      41:             int current_length = current.length();
      42:             for(int k=0;k<current_length;k++)
      43:                  {
      44:               sum += m[current[k]]*pow(10,current_length-k-1); //存入目前的递增数
      45:             }
      46:             //cout<<sum<<endl;
      47:             if(max < sum)
      48:                 max = sum;     //存入目前最大递增数
      49:             current = num[j];
      50:             temp=0;
      51:          }
      52:       }
      53:     cout<<max<<endl;
      54:     return 0;    
      55:  }
  • 相关阅读:
    简单修改 MySQL 的 root 账号密码
    树莓派 Raspberry-Pi 折腾系列:系统安装及一些必要的配置
    [原创] JavaScript 图片放大镜插件 enlarge.js 以及移动版 enlarge.touch.js
    丢掉 WinPE,使用 DISKPART 来分区吧
    【原创】只用 HTML / CSS 画出一把 UKULELE(夏威夷四弦吉他)
    用网页模拟手机(安卓)通知列表中的「清除」效果
    关于 Google Chrome 中的全屏模式和 APP 模式
    简单好用的 AJAX 上传插件,还可以抛弃难看的 file 按钮哦~
    C# 操作 Excel 常见问题收集和整理(定期更新,欢迎交流)
    C++:几种callable实现方式的性能对比
  • 原文地址:https://www.cnblogs.com/justcxtoworld/p/3598791.html
Copyright © 2020-2023  润新知