9 条题解

  • 1
    @ 2025-2-4 22:11:17

    我倒看不出来这题跟位运算有半毛钱关系

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+5,INF=0x3f3f3f3f;
    int n,sum,a;
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n-1;i++){
    		cin>>a;
    		sum+=a;
    	}
    	cout<<(1+n)*n/2-sum;
    	return 0;
    }
    
    • 1
      @ 2023-6-10 19:52:06

      这道题目可以使用高斯求和公式来解决,即将n个数的和减去n(n+1)/2,剩下的就是缺失的数字。具体思路如下:

      1. 读入n和n-1个卡片编号。
      2. 对n个数进行求和,保存在sum中。
      3. 使用高斯求和公式计算1到n的和,保存在total中。
      4. 缺失的数字就是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;
      }
      
    • 0
      @ 2024-5-19 14:08:20

      这道题可以用两种方式解答:

      1. 等差数列求和公式
      #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;
      }
      
      1. 位运算异或:
      #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;
      }
      
      • -1
        @ 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;
        }
        

        晚风拂过脸颊~

        • -1
          @ 2024-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;
          }
          小鸟
          
          • -2
            @ 2023-12-23 20:32:05

            #include 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; }

            • -2
              @ 2023-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; }

              • -2
                @ 2023-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;
                }
                
                • -3
                  @ 2023-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
                  标签
                  递交数
                  692
                  已通过
                  255
                  上传者