某些电话的使用率可以描述如下:
通话的第一分钟收费
override func viewWillAppear(_ animated: Bool) { FirebaseFactory().getAvailableProducts(){ productsArray in // do something with your products self.products = productsArray // maybe reload data if you have a tableview self.tableView.reloadData() } }
美分。从第二个到第十个(含)的每分钟每分钟花费
min1
美分。第十分钟后,通话每多一分钟花费
min2_10
美分。通话前,您的帐户中有
min11
美分。什么是 最长通话时间(以分钟为单位,四舍五入为分钟) 最接近的整数)可以拥有吗?
输入数据:
对于s
,min1 = 3
,min2_10 = 1
和min11 = 2
,输出应为s = 20
。
这是为什么:
第一分钟的费用为3美分,因此您剩下20-3 = 17美分。 2分钟到10分钟的总费用为1 * 9 = 9,因此您可以多聊9分钟,而您仍然可以得到17-9 = 8美分。接下来的每一分钟收费2美分,这意味着您可以再通话8/2 = 4分钟。 因此,您可以拨打的最长电话为1 + 9 + 4 = 14分钟。
我不确定代码逻辑在哪里。
phoneCall(min1, min2_10, min11, s) = 14
答案 0 :(得分:2)
在for循环内的if语句中,您可以在此处执行以下两项操作之一,以使返回值为14。
更改
sum=sum++;
至
sum += 1;
或删除
sum=
就是这样
sum++;
这应该返回14作为总和。
答案 1 :(得分:0)
答案 2 :(得分:-1)
您好@ShubhamSahay您必须像这样编写代码:
public static 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)
{
/*Change 1*/ sum++;
s=s-min2_10;
}
else
break;
}
/*Change 2*/ sum=sum+(s/min11);
}
return sum;
}
这就是为什么
第一个变化:您只需要做sum ++
第二个变化:您必须将那些东西放在括号中