题目描述 给定一个正整数(<=255位),从中删去n位后,使得剩下的数字组成的新数最小(大): 思路:从左到右开始扫描,两两比较,如果是前一位比后一位大,则删去前大的一位,直到删完所有的n位: [从论坛看到的一个题目,觉得挺好的,代码是论坛的大佬写的,不过好像没处理好以0开头的问题.] 再贴一个c写的吧,这也写得挺好的:https://blog.csdn.net/liveas/article/details/5732759 public static void main(String[] arg…
去掉K位求取最小数 一个n位的数,去掉其中的k位,怎样使留下来的(n-k)位数按原来的前后顺序组成的数最小 例如 8314925去掉4个数,留下125最小,注意有前后顺序要求,要是没有顺序当然是123. 解决方案 贪心算法,在每次被访问的位置保证有最优解. 思路一 分析:求一共n位,求其中的m位组成的数最小.那么这个m位的数,最高位应该在原数的最高位到第m位区间找,要不然就不能当第m位了,如下图(得到3位数最小,要是百位数在25中找,就当不了百位数了): 同样找十位数时只能在百味数到目前位置中间…
B. Vile Grasshoppers time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output The weather is fine today and hence it's high time to climb the nearby pine and enjoy the landscape. The pine's trunk in…
Given a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible. Note: The length of num is less than 10002 and will be ≥ k. The given num does not contain any leading zero. Ex…
Given a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible. Note: The length of num is less than 10002 and will be ≥ k. The given num does not contain any leading zero. Ex…
题目链接 UOJ 134 题解 可爱的电音之王松松松出的题--好妙啊. 首先想一个朴素的做法! 把当前的整数的二进制当作01序列用线段树维护一下(序列的第i位就是整数中位权为\(2^k\)的那一位). 如何做加法?一下子加一个整数比较麻烦,可以把整数拆成一个个二进制位,一位位地加1.如果当前要加一的位置就是0,直接加就好了:否则显然要进位,松松松出的题肯定肯定不能暴力进位骗分(=v=)--所以线段树维护区间是否全是1,每次加的时候找右边(即更高位)第一个为0的位置,然后把那个位置修改为1,b和那…
求整数除法小数点后第n位开始的3位数 位数不足的补0,如0.125小数第3位后三位:0.12500→500 输入格式:a b n,空格分开,a是被除数,b是除数,n是小数后的位置 输出格式:3位数字,a÷b小数后第n位开始的3位数字 样例: 输入:1 8 1 输出:125 输入1 8 3 输出:500 输入:282866 999000 6 输出:914 package bb; import java.util.Scanner; public class 求小数n位后3个数 { static lo…
非原创,转载自http://blog.csdn.net/l2i2j2/article/details/51542028如果身份证最后一位是X,输入17位后自动补全X// textField代理方法 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // string.length为0,表明没有输…
原文:SQL去掉小数点有效数字后的所有0 第一种方法 select cast(2.5000000000000   as  real) select cast(2   as  real) select cast(2.00000   as  real)     第二种方法 CREATE function [dbo].[ClearZero](@inValue varchar(50)) returns varchar(50) as begin declare @returnValue varchar(2…
有时shell的入参个数不定,想要获得第2位后的参数,作为新的入参调用其他脚本   通常这时候想到的方法是用遍历,例如下面的方法: for (( i=2;i<=$#;i++)) do        echo $i done   更简便的方法:使用shift去移动参数,shift (n),默认n为1,移动的位数   shift会将n位前的入参舍弃掉,只会保留n+1以及他后面的入参   例如:shift 2,会舍弃第一位第二位入参,只保留第3位及以后的入参   执行 test.sh 1 2 3 4…