View Code of Problem 3700

#include<bits/stdc++.h>
using namespace std;
int jud(int);
int main(){
	int n;
	while(scanf("%d",&n) && n!=0){
		cout<<jud(n)<<endl;
	}
	return 0;
}
int jud(int n){
	int num[100] = { },op = 0;
	while(n){
		num[op++] = n%2;
		n/=2;
	}
	int fin[100] = { },k = 0;
	for(int i = 0;i<op;i++){
		if(num[i]!=1)num[k++] = num[i];
		else{
			num[k] = num[i];
			break;
		}
	}
	double sum = 0,q = 0;
	for(int i = 0;i<=k;i++){
		sum = sum + pow(2,q) * num[i];
		q++;
	}
	int u = (int)sum;
	return u;
}

Double click to view unformatted code.


Back to problem 3700