C语言也可寻找罪犯?

一辆汽车撞人后逃跑,4个目击者提供如下线索: 甲:牌照三、四位相同; 乙: 牌号为31**** 丙:牌照五、六位相同; 丁: 三~六位是一个整数的平方下面程序将借此线索帮你找到罪犯。


#include <stdio.h>
int main(){
    int i,j,k,m,n;
    for(i=0;i<=9;i++){
        for(j=0;j<=9;j++){
            if(i!=j){
                k=i*1000+i*100+j*10+j;
                for(m=31;m*m<=k;m++){
                    if(m*m==k){
                        n = 31*10000+k;
                        printf("肇事车辆号码为:%d。",n);
                    }
                }
            }
        }
    }
    return 0;
}

那我们看另一种情况。

一位法官在审理一起盗窃案时,对涉及的4名嫌疑犯A、B、C、D进行了审问。4人分别供述如下: A:“罪犯在B、C、D三人之中。” B:“我没有作案,是C偷的。” C:“在A和D中间有一个是罪犯。” D:“B说的是事实。” 经过充分的调查,证实4人中只有两人说了真话,另外两人说的是假话,并且罪犯只有一个。请确定真正的罪犯。

代码也可轻松实现找出罪犯。

#include<stdio.h>
void main(){
    int a,b,c,d,la,lb,lc,ld;
    for(a=0;a<=1;a++){
        for(b=0;b<=1;b++){
            for(c=0;c<=1;c++){
                for(d=0;d<=1;d++){
                    la=b||c||d;
                    lb=!b&&c;
                    lc=(a+d==1);
                    ld=lb;
                    if(la+lb+lc+ld==2&&a+b+c+d==1){
                        if(a){
                            printf("%d,%d,%d,%d\n",a,b,c,d);
                            printf("A是罪犯.\n");
                        }
                        else if(b){
                            printf("%d,%d,%d,%d\n",a,b,c,d);
                            printf("B是罪犯.\n");
                        }
                        else if(c){
                            printf("%d,%d,%d,%d\n",a,b,c,d);
                            printf("C是罪犯.\n");
                        }
                        else{
                            printf("%d,%d,%d,%d\n",a,b,c,d);
                            printf("D是罪犯.\n");
                        }
                    }
                }
            }
        }
    }
}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值