#include<bits/stdc++.h>usingnamespace std;#defineintlonglongint a[101];int b[101];signedmain(){int t;cin >> t;while(t--){int n, m;cin >> n >> m;int cou =-1;for(int i =0; i <31; i++){a[i]= m >> i &1;b[i]= n >> i &1;if(a[i]==0&&cou==-1)cou = i;}bool flag =false;int sum =0;for(int i =30;~i; i--){if(flag){sum *=2;}else{if(a[i]==0){if(b[i]==0){sum = sum *2;}else{flag =true;sum = sum *2;}}else{if(b[i]==0){sum = sum *2+1;}else{sum = sum *2;}}}}if(flag==false){sum+=pow(2,cou);for(int i=cou-1;~i;i--){if(a[i]!=b[i]) sum-=pow(2,i);}}cout << sum << endl;}}
D 構造字符串,沒啥意思
#include<bits/stdc++.h>usingnamespace std;#defineintlonglongsignedmain(){int t;cin >> t;while(t--){int n;cin >> n;if(n <=26){for(int i =0; i < n; i++){printf("%c",'a'+ i);}}else{int cou =0;if(n %2==1) cou++;n /=2;if(n %2==0){cou +=2;n--;}n /=2;// cout<<cou<<" "<<n<<endl;if(cou <4) n--;else cou-=4;for(int i =1; i <= n; i++){cout <<"a";}printf("%c",'b'+1);for(int i =1; i <= n +1; i++){cout <<"b";}printf("%c",'b'+2);for(int i =1; i <= n +1; i++){cout <<"a";}printf("%c",'b'+3);for(int i =1; i <= n; i++){cout <<"b";}printf("%c",'b'+4);for(int i =5; i < cou +5; i++){printf("%c",'b'+ i);}}cout << endl;}}