考研机试枚举问题

例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);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值