8 条题解
-
0清风 (slz罗栎晟) LV 8 @ 2024-12-10 17:01:17
#include<iostream> #include<cstring> using namespace std; int a[1314520],ans,x; unsigned n; int main(){ cin >> n; for (int i=1; i<=n-1; i++){ cin >> x; ans^= x; ans^=i; } ans^=n; cout << ans; return 0; }
晚风拂过脸颊~
-
02024-12-10 16:54:09@
#include<bits/stdc++.h> using namespace std; int a[1000000],ans,x; unsigned n; int main(){ cin >> n; for (int i=1; i<=n-1; i++){ cin >> x; ans^= x; ans^=i; } ans^=n; cout << ans; return 0; } 小鸟
-
02023-6-10 19:52:06@
这道题目可以使用高斯求和公式来解决,即将n个数的和减去n(n+1)/2,剩下的就是缺失的数字。具体思路如下:
- 读入n和n-1个卡片编号。
- 对n个数进行求和,保存在sum中。
- 使用高斯求和公式计算1到n的和,保存在total中。
- 缺失的数字就是total-sum,输出即可。
#include <iostream> using namespace std; int main() { int n, sum = 0; cin >> n; for (int i = 1; i < n; i++) { int card; cin >> card; sum += card; // 对n-1个卡片进行求和 } int total = n * (n + 1) / 2; // 计算1到n的和 cout << total - sum << endl; // 缺失的数字就是total-sum return 0; }
-
-12024-5-19 14:08:20@
这道题可以用两种方式解答:
- 等差数列求和公式
#include <iostream> using namespace std; int s = 0, n, s2; // s2表示1~n求和,s表示输入数据求和 int main(){ cin >> n; for(int i = 1;i < n;i++){ int tmp; cin >> tmp; s += tmp; } // 等差数列求和公式 s2 = (1 + n)*((n-1)/1+1)/2; cout << s2 - s; return 0; }
- 位运算异或:
#include <iostream> #include <string.h> #include <cstdio> #include <algorithm> #include <string> #include <iomanip> #include <math.h> #include <map> #include <set> #include <cstdlib> #include <vector> typedef long long LL; typedef unsigned long long ULL; const int N = 1e5 + 10; const int INF = 0x3f3f3f3f; using namespace std; int n, tmp, ans; int main() { scanf("%d", &n); // 输入数据同时尽 for(int i = 1; i < n; i++) { scanf("%d", &tmp); ans ^= tmp; ans ^= i; } ans ^= n; printf("%d", ans); return 0; }
-
-12023-12-23 20:32:05@
#include<iostream> using namespace std; const int N=1e3+10; const int INF=0x3f3f3f3f; unsigned int n,m,a; int main(){ cin>>n; for(int i=1;i<n;i++) { cin>>m; a^=m^i; } a^=n; cout<<a; }
-
-12023-12-5 20:42:56@
#include<bits/stdc++.h> using namespace std; int ans,n,x; int main(){ cin>>n; for(int i = 1; i < n; i ++ ) { cin>>x; ans ^= x; ans ^= i; } ans ^= n; cout<<ans; return 0; }
-
-12023-5-30 16:50:56@
using namespace std; int a[1000000],ans,x; unsigned n; int main(){ cin >> n; for (int i=1; i<=n-1; i++){ cin >> x; ans^= x; ans^=i; } ans^=n; cout << ans; return 0; }
-
-22023-5-6 20:37:39@
煎蛋
#include<iostream> using namespace std; int ans,n,x; int main(){ cin>>n; for(int i = 1; i < n; i ++ ){ cin>>x; ans ^= x; ans ^= i; } ans ^= n; cout<<ans; }
- 1
信息
- ID
- 2953
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 685
- 已通过
- 251
- 上传者