码迷,mamicode.com
首页 > 其他好文 > 详细

整数m去掉n位后剩下最大(小)值

时间:2018-05-23 21:14:16      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:live   sub   bsp   sed   csdn   rate   color   index   开始   

题目描述

给定一个正整数(<=255位),从中删去n位后,使得剩下的数字组成的新数最小(大);

思路:从左到右开始扫描,两两比较,如果是前一位比后一位大,则删去前大的一位,直到删完所有的n位;

         【从论坛看到的一个题目,觉得挺好的,代码是论坛的大佬写的,不过好像没处理好以0开头的问题。】

 

        再贴一个c写的吧,这也写得挺好的:https://blog.csdn.net/liveas/article/details/5732759

 1 public static void main(String[] args) {
 2         // TODO Auto-generated method stub
 3         int i,j,k,length,n,m;
 4         Scanner sc=new Scanner(System.in);    //warning :leak: ‘sc‘ is never closed
 5         String s=sc.nextLine();   //输入的整型数;
 6         char c;
 7         n=sc.nextInt();
 8         int index;
 9         sc.close();
10         if(n>s.length())     //如果删除的长度比输入的整数本身还要大就报错;
11         {
12             System.out.println("Error!");
13             return;
14         }for(i=0;i<n;i++)
15         {
16             j=0;        //j重新从0下标开始;
17             while(j<s.length())
18             {
19                 if(j==s.length()-1)
20                 {
21                     s=s.substring(0, j);
22                     break;
23                 }
24                 index=j+1;
25                 c=s.charAt(index);
26                 if(s.charAt(j)-‘0‘<=(c-‘0‘))
27                 {
28                     j++;
29                     continue;
30                 }
31                 else
32                 {
33                   s=s.substring(0,j)+s.substring(index,s.length());      //把j位的字符截去;
34                   break;
35                 }
38             }
39         }
40         System.out.println(s);
41     }

 

整数m去掉n位后剩下最大(小)值

标签:live   sub   bsp   sed   csdn   rate   color   index   开始   

原文地址:https://www.cnblogs.com/Guhongying/p/9079278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!