天天看點

CCF_NOI_1038. 玩撲克 C++中的異或運算符^

時間限制:1000ms 空間限制:262144M

題目描述

      又到休息時間了。兩個小夥伴要玩撲克牌比大小的遊戲:每人分到一種花色的撲克牌,然後每人随機出一張牌,大者勝,最後獲勝次數多的人,赢一輪。不開心的事發生了,玩了一輪後,發現撲克牌竟然少了一張。到底少了幾呢?

你能寫個程式,快速找到撲克x嗎?

輸入

輸入一行,包括25個用空格分隔的數字(A表示為1,J、Q、K表示為11、12、13)。

輸出

輸出數字x,表示缺少的撲克牌數字。

樣例輸入

9 1 13 2 6 10 7 8 3 11 4 1 5 9 10 2 4 3 12 13 11 5 8 6 7

樣例輸出

12

___________________________________________________________________________________________________________________

#include<stdio.h>
int main(){
int n,i,sum=0;
for( i=0;i<25;i++){
	scanf("%d",&n);
	sum+=n;
	}
printf("%d",182-sum);
return 0;
}
 
 
  ___________________________________________________________________________________________________________________
 
 
  
         
#include <cstdio>
   
   
    using namespace std;
   
   
    int main(){
   
   
      for (int i=1;i<=25;i++){
   
   
    	int ans=0;
   
   
    		int n;
   
   
    		ans^=n;
   
   
    		scanf("%d",&n);
   
   
    	}
   
   
    }
   
   
    	printf("%d",ans);
   
   
    	return 0;
   
   
    }
         

___________________________________________________________________________________________________________________

C++中的異或運算符^

C++中^運算表示的是二進制的異或運算 2^4=6 010^100=110

使用該運算可以實作無中間變量兩數字的兌換

下面的例子實作a和b的置換

a=2;

b=4;

a=a^b;

b=a^b;

a=a^b;

  異或^是一個非常重要的運算符,大量問題可以利用異或的特點找到解決方案,尤其是在各大公司的面試題中。異或絕對是一個關鍵的運算符。

例如:

http://zhedahht.blog.163.com/blog/static/2541117420071128950682/

http://www.cnblogs.com/coser/archive/2011/03/08/1976949.html

繼續閱讀