例1 abc问题(清华大学复试上机题)
#include <stdio.h>
int main() {
int a,b,c;
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
{
if((a*100+b*10+c)+(b*100+c*10+c)==532)
printf("%d %d %d",a,b,c);
}
return 0;
}
程序出错解决
编译错误:一般是语法错误,定位第一个报错位置
链接错误:函数名拼错
运行错误:打断点、调试、观察监视窗口、步过(想进入自定义函数内部点“步入”)
例2 反序数(清华大学复试上机题)
#include <stdio.h>
int Reverse(int n){
int remain; //余数
int reverse = 0; //反序数
while(n>0){
remain = n % 10; //4 3
n = n/10; //1234 -> 123 -> 12
reverse = reverse * 10 + remain; //0 -> 4 -> 43
}
return reverse;
}
int main(){
int a,b,c,d;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++){
int n = a*1000 + b*100 + c*10 +d;
if(n*9 == Reverse(n)){
printf("%d\n",n);
}
}
}
例3 对称平方数1
#include <cstdio>
int Reverse(int n){
int remain; //余数
int reverse = 0; //反序数
while(n>0){
remain = n % 10; //4 3
n = n/10; //1234 -> 123 -> 12
reverse = reverse * 10 + remain; //0 -> 4 -> 43
}
return reverse;
}
int main() {
int i = 0;
for(i=0;i<=256;i++){
if(i*i == Reverse(i*i)){
printf("%d\n",i);
}
}
}