小明认为某些数字不吉利,付账时会尽可能少的多付一些钱,使得价格中不包含这些不吉利数字,并且不出现0.例如,不吉利数字为1,4,7,8,商品价格为1000,小明实际支付2222.实现程序,输入商品原来的价格price,不吉利数字集合unlucky_numbers,求小明付账时的价格lucky_price.
// Java
int getLuckyPrice(int price,List<Integer> unlucky_numbers){
int[] array = new int[10];
int res = 0 ;
int i = 0;
//获得price的每一位存入数组
while(price>0){
array[i] = price % 10;
i++;
price = price / 10;
}
for(i=i-1;i>=0;i--){
//从给定价格的高位到低位一次遍历,判断各个数字是否存在在不幸运的数字当中。
//若存在,则将该数字变为不幸运数字。
if(unlucky_numbers.contains(array[i])){
array[i] = plus1(array[i],unlucky_numbers);
res = res + array[i].Math.pow(10,i);
}
res= res + array[i].Math.pow(10,i);
}
return res;
}
int plus1(int number,List<Integer> unlucky_numbers){
int x=number;
while(unlucky_numbers.contains(x) && x<=9){
x=x+1;
}
return x;
}
}
参考文章如下:https://www.nowcoder.com/test/question/done?tid=17842197&qid=218416#summary