用一种暴力的办法将十进制数字显示为二进制,设置了for循环了变量<2,但输出是2222222222222222,在python tutor里也发现有变量在运行过程中被加到了2,请大家看看是什么问题呢?
#include
#include
using namespace std;
int main()
{
short int x;
cin>>x;
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;
for(a=0;a<2;a++)
for(b=0;b<2;b++)
for(c=0;c<2;c++)
for(d=0;d<2;d++)
for(e=0;e<2;e++)
for(f=0;f<2;f++)
for(g=0;g<2;g++)
for(h=0;h<2;h++)
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
for(l=0;l<2;l++)
for(m=0;m<2;m++)
for(n=0;n<2;n++)
for(o=0;o<2;o++)
for(p=0;p<2;p++)
{if(a*pow(2,15)+b*pow(2,14)+c*pow(2,13)+d*pow(2,12)+e*pow(2,11)+f*pow(2,10)+g*pow(2,9)+h*pow(2,8)+i*pow(2,7)+j*pow(2,6)+k*pow(2,5)+l*pow(2,4)+m*pow(2,3)+n*pow(2,2)+o*pow(2,1)+p*pow(2,0)==x)
break;
}
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p);
return 0;
}
{if(apow(2,15)+bpow(2,14)+cpow(2,13)+dpow(2,12)+epow(2,11)+fpow(2,10)+gpow(2,9)+hpow(2,8)+ipow(2,7)+jpow(2,6)+kpow(2,5)+lpow(2,4)+mpow(2,3)+npow(2,2)+opow(2,1)+ppow(2,0)==x)
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p);
break;
}
唔它本质上是想把一个十进制数转化成二进制,不应该没有满足条件的值呀