java - 电话编程逻辑
问题描述
部分电话使用率可描述如下:
通话的第一分钟花费
min1
几美分。从第 2 次到第 10 次(含)的
min2_10
每分钟每分钟花费美分。第 10 分钟后,每增加一分钟通话费用
min11
为 1 美分。在通话之前,您的帐户上有
s
美分。您可以拥有的最长通话时间(以分钟为单位,向下舍入到最接近的整数)?
输入数据:
对于min1 = 3
, min2_10 = 1
,min11 = 2
和s = 20
, 输出应该是phoneCall(min1, min2_10, min11, s) = 14
.
原因如下:
第一分钟花费 3 美分,剩下 20 - 3 = 17 美分。第 2 分钟到第 10 分钟的总成本是 1 * 9 = 9,所以你可以再讲 9 分钟,仍然有 17 - 9 = 8 美分。下一分钟花费 2 美分,这意味着您可以多说 8 / 2 = 4 分钟。因此,您可以拨打的最长电话是 1 + 9 + 4 = 14 分钟。
我不确定我的代码逻辑有什么问题。
int phoneCall(int min1, int min2_10, int min11, int s) {
int sum = 0;
if (s >= min1) {
sum++;
s = s - min1;
for (int i = 1; i <= 9; i++) {
if (s >= min2_10) {
sum = sum++;
s = s - min2_10;
} else
break;
}
sum = sum + s / min11;
}
return sum;
}
解决方案
在 for 循环内的 if 语句中,您可以在此处执行以下两项操作之一,以使您的 return 为 14。
更改
sum=sum++;
为
sum += 1;
或删除它,
sum=
这样它就可以了
sum++;
这应该返回 14 作为总和。
推荐阅读
- python - 在 pytest.mark.parametrize 中使用夹具
- content-management-system - Typo3:尝试添加扩展,然后我的网站崩溃并显示 HTTP ERROR 500
- arcore - 两帧之间的立体基线
- amazon-s3 - AWS Macie 中的行为分析是否跟踪从 AWS Athena 对 S3 中敏感数据的调用?
- python - 使用图表从 docx 的 python 调用 libreoffice 生成 pdf 时出现问题
- python-3.x - TensorFlow Logits 和 Labels 必须是可广播的
- ios - React Native - 链接 - 在 Iphone 的 FB 应用程序中打开 FB 页面
- ios - Google Map iOS - 缩放动画在两部不同的手机(iPhone X 与 iPhone 7)上的工作方式不同
- python-3.x - 使用 GridSearchCV 进行网格搜索 - 使用 ImageDataGenerator(keras)的 scikit-learn(超参数调整)?
- c# - Angular 应用程序从后端获取大量数据,并且它们在 html 表中显示不佳