1.设a,b. c均是0到9之间的数字。qbc, bec是两个三位数。且有abc + bcc = 532.求满足条件的所有a,b.c的值。
法一:
```c
#include <cstdio>
int main() {
int a,b,c;//定义了名字为a,b,c的三个整型变量
for(a=0;a<=9;a++){
//a的初始值是0,当a满足小于等于9的时候可执行循环体
for(b=0;b<=9;b++){
for(c=0;c<=9;c++){
if(100*a+10*b+c+100*b+10*c+c==532)
printf("%d %d %d\n",a,b,c);
//%d是占位符 decimal十进制整数
}
}
}
}
法二:
```c
#include<cstdio>
int main(){
int i,a,b,c;
for(i=100;i<532;i++){//i为三位数,两个正数相加=532,所以i<532
c= i%10;//分别求a,b,c
b= i/10%10;
a= i/10/10;
if(532==a*100+b*10+c+b*100+c*10+c){
printf("%d %d %d",a,b,c);
}
}
}
2.设N是一个4位数。它的9倍恰好是其反序数如1234的反序数是4321。求N的值。
法一:
#include<cstdio>
int main(){
int remain,reverse,n,i;
for(i=1000;i<10000;i++){//i为四位数
reverse=0;//reverse必须设初值
n=i;
while(n>0){
remain =n%10;
n=n/10;
reverse=reverse*10+remain;
}
if(i*9==reverse)
printf("%d\n",i);
}
}
法二:
```c
#include<cstdio>
int Reverse(int n){//Reverrse函数,参数为整形,作用是求反序数
int remain;int reverse=0;
while(n>0){
remain=n%10;
n/=10;
reverse=reverse*10+remain;
}
return reverse; //返回反序数
}
int main(){
int a,b,c,d;
for(a=1;a<10;a++){//四位数四层循环
for(b=0;b<10;b++){
for(c=0;c<10;c++){
for(d=0;d<10;d++){
if((a*1000+b*100+c*10+d)*9==Reverse(a*1000+b*100+c*10+d))
printf("%d",a*1000+b*100+c*10+d);
}
}
}
}
}
3.打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数。因为2"2=4,11"11=121。(平方对称数)
#include<cstdio>
int Reverse(int n){//Reverrse函数,参数为整形,作用是求反序数
int remain,reverse=0;
while(n>0){
remain=n%10;
n=n/10;
reverse =reverse*10+remain;
}
return reverse;//返回反序数
}
int main(){
int i,m;
for(i=0;i<257;i++){
m=i*i;
if(m==Reverse(m)){
printf("%d\n",i);
}
}
}