4 条题解
-
1凌艺樽 (lingyizun) LV 7 @ 2023-10-23 20:15:37
全都让开!!!!!
本题第一个Ac题解:
#include <iostream> using namespace std; int main() { int n; cin >> n; for (int i = 1; i <= 100000; i++) {//枚举我家的门牌号数 //i不知道多少,可以开100000 int sum = 0; for (int j = 1;; j++) { if(j != i) { sum += j;//累积其他门牌总数 } if (sum - i * 2 == n && i<=j) {//判断,我家的门牌号不可能超过最大门牌 cout << i << " " << j << endl; break; } if (sum - i * 2 > n) break; //提前退出 } } return 0; }
(感谢曾致远提供的
0分代码模版和思路) -
02024-10-13 17:44:49@
#include <iostream> using namespace std; int main() { int n; cin >> n; for (int i = 1; i <= 100000; i++) { int sum = 0; for (int j = 1;; j++) { if(j != i) { sum += j; } if (sum - i * 2 == n && i<=j) { cout << i << " " << j << endl; break; } if (sum - i * 2 > n) break; } } return 0; } `
-
02023-2-13 18:00:00@
这道题的说明有点问题,
若其余各家的门牌号之和减去我家门牌号的两倍
这里应该改为
若所有的门牌号之和减去我家门牌号的两倍
然后,存粹的暴力枚举题,没什么好说的......
#include<iostream> using namespace std; int main(){ int n; cin >> n; int sum=0; for(int i=1;i<=n;i++){ sum+=i; if(sum>n){ if((sum-n)%2==0&&(sum-n)/2<=i){ cout << (sum-n)/2 << " " << i; return 0; } } } return 0; }
-
-22023-10-22 10:51:36@
我家住在一条短胡同里,这条胡同的门牌号从\red{1}1开始顺序编号。
若其余各家的门牌号之和减去我家门牌号的两倍,恰好等于\red{n}n,求我家的门牌号及总共有多少家。数据不保证有唯一解。
输入格式
一个正整数\red{n}n。\red{n<100000}n<100000。
输出格式
一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。
若有多个,每一组答案换一行
AC
#include <iostream> using namespace std; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { int sum = 0; for (int j = i + 1; ; j++) { sum += j; if (sum - i * 2 == n) { cout << i << " " << j << endl; break; } if (sum - i * 2 > n) break; } } return 0; }
- 1
信息
- ID
- 962
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 421
- 已通过
- 59
- 上传者