首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算表示n%的可能组合数

计算表示n%的可能组合数
EN

Stack Overflow用户
提问于 2015-08-19 23:19:08
回答 1查看 717关注 0票数 0

问题是-

给定无限数量的四分之一(25美分)、一角硬币(10美分)、五分币(5美分)和便士(1分),编写代码来计算表示n美分的方法的数量。

有人能告诉我我的密码出了什么问题吗?或者说是对的呢?它是用Java写的。

代码语言:javascript
复制
Int[] data = new int[n];

Public int numWays(int n) {

If (n == 0 ) {
    Return 0;
}

If (n==1) {
    Return 1;
}

If (data[n] != -1) {
    Return data[n];
}

Return Data[n] = numWays(n-25) + numWays(n-10) + numWays(n-5) +numWay(n-1);
}
EN

回答 1

Stack Overflow用户

发布于 2015-08-19 23:28:17

此代码有几个问题:

  • Int[] data = new int[n]; Int不是java中定义的类型(猜这只是一个错误),n在作用域上没有定义(我猜您指的是numWays的输入)
  • Public应该是public
  • 一个int[]被初始化为0作为默认值,而不是-1。

除此之外:为什么是数组?对于内存来说,这是非常低效的,而且不会像你想象的那样工作。或者用HashMap替换代码的这一部分,或者--因为您显然是初学者--为了简单起见完全不要使用它。你应该加个范围检查。到目前为止,您可能会用n < 0生成一个方法调用,它将以一个StackoverflowException结束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32107172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档