1.这个数的百位不大于200
2这个三位数的各位与百位调换是新得的三位数的2倍
1.这个数的百位不大于200
2这个三位数的各位与百位调换是新得的三位数的2倍
程序代码如下,但是没有符合条件的数。
#include<stdio.h>
int Datedeal(int a);
main()
{int i;
for(i=100;i<=200;i++)
if(Datedeal(i))
printf("%d\t",i);
if(i>=200) printf("无符合条件的数\n");
}
int Datedeal(int a)
{int x,y,z,b;
x=a%10;
y=(a%100)/10;
z=a/100;
b=100*x+y*10+z;
if(2*a==b)
return 1;
else return 0;
}
#include <stdio.h> main() { freopen("output.txt","w",stdout); int i,a,b,c,newnum; for(i=100;i<1000;i++) { a=i/100; //百位数// b=i/10%10; //十位数// c=i%10; //个位数// newnum=c*100+b*10+a; if(newnum*2==i) printf("%d\n",i); } }
无论是新数是旧数的2倍还是旧数是新数的2倍都不存在这样的数
这样的数是不存在的,如果调换之后还是3位数的话,而且这个数的3倍是原来的数;可以想一下:最小的3位数是100,100×3=300,这就已经超过200了。
根据你的题意编写了这个程序,计算j的式子就是将一个3位数的各位与百位调换。没有得出结果,我怀疑是不是这个数的百位不小于2,而不是不大于2。
#include <stdio.h> #include <stdlib.h>
int main() { int i = 100; for(; i < 200; i++) { int j = (i % 10) * 100 + ((i / 10) % 10) * 10 + i / 100; if(j == i * 2) printf("%d * 2 = %d\n", i, j); } return 0; }
#include<stdio.h>
void main() { int num=100; int i,j; for(;num<200;num++) { i=num%10;//个位 j=(num/10)%10;//十位 if((i*100+j*10+1)==2*num||(j*100+1*10+i)==2*num) printf("num=%d\n",num); } } //代码写出来了,不过找不到你说的那个数.....