《美团网编程题》奇数位丢弃
生活随笔
收集整理的這篇文章主要介紹了
《美团网编程题》奇数位丢弃
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
對于一個由0..n的所有數(shù)按升序組成的序列,我們要進(jìn)行一些篩選,每次我們?nèi)‘?dāng)前所有數(shù)字中從小到大的第奇數(shù)位個的數(shù),并將其丟棄。重復(fù)這一過程直到最后剩下一個數(shù)。請求出最后剩下的數(shù)字。
輸入描述:
每組數(shù)據(jù)一行一個數(shù)字,為題目中的n(n小于等于1000)。
輸出描述:
一行輸出最后剩下的數(shù)字。
示例1
輸入
500
輸出
255
解析:請不要誤會,該問題并不是約瑟夫環(huán)的問題,因為需要重新開始的。而約瑟夫環(huán)的問題并不需要重新開始丟棄
import java.util.ArrayList; import java.util.List; import java.util.Scanner;public class Main {public static int getLastNum(int n){List<Integer> list = new ArrayList<>();for(int i=0;i<=n;i++) {list.add(i);}while (list.size()>1){//只需要輸出最后的一位即可for(int i=0;i<list.size();i++){//每一個for循環(huán)都需要把奇數(shù)位丟棄list.remove(i);}}return list.get(0);}public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()){int n=sc.nextInt();System.out.println(getLastNum(n));}} }總結(jié)
以上是生活随笔為你收集整理的《美团网编程题》奇数位丢弃的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最大递增子序列
- 下一篇: 《网易编程题》下厨房