#include<stdio.h> #include<math.h> int deTobi(int a,int stack[]){ //十进制转化为二进制数 int i=0,r,s; do { r=a/2; s=a%2; //取余数 stack[i] = s; if (r!=0) { ++i; a=r; } } while (r); //为0时结束运行 return i; } int main(){ int n; while(scanf("%d",&n)!=EOF&&n!=0){ int a[20]; int len=deTobi(n,a); /*for(int i=0;i<len+1;i++) printf("%d",a[i]);*/ for(int i=0;i<len+1;i++){ if(a[i]==1){ printf("%d\n",(int)pow(2,i)); //pow返回double型 break; } } } } |
Double click to view unformatted code.