【问题标题】:Converting Binary Number to Decimal using recursion technique使用递归技术将二进制数转换为十进制数
【发布时间】:2013-09-23 08:51:31
【问题描述】:

正如标题所说,我试图在 java 中使用递归技术将二进制转换为十进制,但我无法获得所需的输出 这就是我所做的

   public class deci {
       public static void main(String args[]){
           hexa s1=new deci();
           s1.spawn(11000);
       }
       void spawn(int a){
           int p=0;int x=0;int k=0;
           if(a>0){
               p=a%10;
               x=x+p*(int)Math.pow(2,k);
               k++;
               spawn(a/10);
           } else {
               System.out.print(x);
           }
       }
   }     

【问题讨论】:

  • 期望的输出是什么?你得到了什么输出?努力吧,伙计。
  • 我得到的是 00110 而不是 12
  • 那么这段代码到底有什么问题??
  • 好吧,你没有将 k 的值传递给任何地方,所以它总是 0。
  • @Sigma 我不会为您编写代码,但我可以帮助您。我已经提到你增加'k',但永远不要用它做任何事情。

标签: java recursion binary decimal


【解决方案1】:

问题是你没有使用 spawn 的结果,无论是返回还是打印它。

如果你想退货,你需要变速或动力,但你想打印它。

我建议您在调试器中单步调试代码,以便查看它在做什么。

【讨论】:

    【解决方案2】:

    这是一个工作程序。

    参数是(二进制代码,code-1 的大小),例如对于 (111, 2) 这将返回 7

    int binaryToDecimal(int binary,int size){  
      if(binary==0) return 0;        
      return binary%10*(int)Math.pow(2,size)+binaryToDecimal((int)binary/10,size-1);  
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-19
      • 2014-07-14
      • 2015-06-14
      • 2016-06-27
      • 1970-01-01
      • 2021-07-09
      • 2017-03-26
      • 2011-01-08
      相关资源
      最近更新 更多