社区讨论
我寻思着应该改哪呢 72分
P4956[COCI 2017/2018 #6] Davor参与者 4已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 11 条
- 当前快照
- 1 份
- 快照标识符
- @lo7sywy3
- 此快照首次捕获于
- 2023/10/27 07:15 2 年前
- 此快照最后确认于
- 2023/10/27 07:15 2 年前
这 是 一 只 72 分 的 代 码:
CPP#include <iostream>
using namespace std;
int n, x = 1, k = 1;
int main(){
cin >> n;
int nn = n / 52;
for(k = 1; ; k++){
int kk = k * 21;
for(x = 1; x <= 100; x++){
if(x * 7 + kk == nn){
break;
}
}
if(x * 7 + kk == nn){
break;
}
}
cout << x << endl << k;
return 0;
}
这 是 一 只 思 路:
我寻思着不是k和x有限制吗
CPP详见:
0 < x <= 100 k > 0
所以 for 循环搁那转呢,为了减少计算量( n 可能会很大)把 n / 52 放外面赋值给了 nn ,第一轮 for 循环 k * 21 赋值给了 kk ,为了满足 x 尽可能大(第二轮 for 循环), k 尽可能小(第一轮 for 循环),所以主要循环 x ,但满足方程 x * 7 + k * 21 == n / 52,
即 x * 7 + kk == nn 时 break 跳出 2 个 for 循环,最后输出 x 和 k , return 0
回复
共 11 条回复,欢迎继续交流。
正在加载回复...