- #include <iostream>
- #include <cmath>
- #include <string>
- using namespace std;
- string sprawdz(int kod){
- if(kod>=pow(2,10) || kod<pow(2,2)) // trzeci warunek
- return "NIE (3)";
- int i=-1,suma=0, x=kod;
- cout << "(";
- for(i=9;i>=0; i--){
- if(x>=pow(2,i)){
- suma++;
- cout << 1;
- x-=pow(2,i);
- }
- else cout << 0;
- }
- cout << ") ";
- if(suma%2==1) return "NIE (2)"; //drugi warunek
- x=kod;
- for(i=9;i>=0; i--){
- if(x>=pow(2,i)){ //szukanie najbardziej znaczącego bitu
- x-=pow(2,i);
- if(x>=pow(2,i-1)) return "NIE (1)"; //pierwszy warunek
- else return "TAK";
- }
- }
- }
- int main(){
- cout << sprawdz(1) << endl;
- cout << sprawdz(185) << endl;
- cout << sprawdz(91) << endl;
- cout << sprawdz(95) << endl;
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/251120137458.html
来源: http://www.codesnippet.cn/detail/251120137458.html