网易校招2018----题目1
Posted ...............洋葱的秋秋空间........
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网易校招2018----题目1相关的知识,希望对你有一定的参考价值。
package wangyi_2018campus; import java.util.Scanner; /** * Created by Ramble on 2017/11/13. */ public class MagicMoney { static StringBuffer str = new StringBuffer(); public static void getMagicMoney(int n) { while (n>0) { if (n%2==0) { str.append("2"); n = (n-2)/2; } else if(n%2==1) { str.append("1"); n = (n-1)/2; } else { System.out.println("Wrong input"); } } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); getMagicMoney(n); System.out.println(str.reverse()); } }
本来我列举了下,感觉找到规律了:1,2,11,12,21,22,111,112.....
想了用二进制替换什么的,没有想到具体怎么实现.有点沮丧.
不过规律是2*x的值一定是偶数,那么2*x+1就一定是奇数,2*x+2一定是偶数.
想到这儿就容易了:判断一下输入的n是偶数还是奇数,然后一层层扒皮.
最后得逆转过来.
啊,丑陋的代码.
以上是关于网易校招2018----题目1的主要内容,如果未能解决你的问题,请参考以下文章