论坛地址:http://topic.csdn.net/u/20081214/00/5285a066-d37b-455f-a3be-4bb15aeda0ef.html?seed=290962744
情景是:一元一瓶的汽水,2个空瓶能换一瓶汽水。
问假如你有X元钱,能喝Y瓶汽水. 用y=f(x)表示
如果是N空瓶换一个空瓶呢,用y=f(x,n)表示
我的代码,如果是2换1:
- package lihan;
- public class test {
- public static Integer digui(int x)
- {
- if(x==1)
- {
- return x;
- }
- if(x%2==1)
- return x+digui(x/2)+1;
- else
- return x+digui(x/2);
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO 自动生成方法存根
- int i=digui(11);
- System.out.print(i);
- }
- }
如果是N换1的话,那么
- public class lihan {
- public static Integer digui(int x,int n)
- {
- if(x==1)
- {
- return x;
- }
- if(x%n==(n-1))
- return x+digui(x/n,n)+1;
- else
- return x+digui(x/n,n);
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO 自动生成方法存根
- int i=digui(12,3)+1;
- System.out.print(i);
- }
- }