yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊。
现在给你m个1,你可以把2个1组合成一个2,这样就不是光棍了,问这样的组合有多少种??
例如(111 可以拆分为 111 12 21 有三种)
3 11 111 11111
2 3 8
看来用java解大数问题才是正道啊,想着用数组打表会更省时间把。。。
<pre name="code" class="java"><pre name="code" class="java"> import java.util.*; import java.math.*; public class Main { public static void main(String[] args) { int len,i; Scanner num=new Scanner(System.in); int t=num.nextInt(); while(t!=0) { String str=num.next(); len=str.length(); if(len==1) System.out.println("1"); else if(len==2) System.out.println("2"); else { BigInteger x=new BigInteger("1"); BigInteger y=new BigInteger("2"); BigInteger z=new BigInteger("3"); for(i=3;i<=len;i++) { z=x.add(y); x=y; y=z; } System.out.println(z); } t--; } } }
原文地址:http://blog.csdn.net/su20145104009/article/details/45873963