2021-08-23

计算24点代码,我的c语言代码如下

#include<stdio.h>
#include<math.h>

int main()
{
    float Pa(float x,float y,float z,float w);
    float Pb(float x,float y,float z,float w);
    float A,B,C,D;
    printf("请输入四个整数:");
    scanf("%f%f%f%f",&A,&B,&C,&D);
    Pa(A,B,C,D);Pb(A,B,C,D);
    return 0;
}

float Pa(float x,float y,float z,float w)
{
    int i,j,k,r,p,q,s;float a[4],b[4],c[4],d[4];
    a[0]=x;a[1]=y;a[2]=z;a[3]=w;
    char g[4]="+-*/";
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            for(k=0;k<4;k++)
            {
                for(r=0;r<4;r++)
                {
                    if(i!=j&&i!=k&&i!=r&&j!=k&&j!=r&&k!=r)
                    {
                        b[0]=a[i]+a[j];b[1]=a[i]-a[j];
                        b[2]=a[i]*a[j];b[3]=a[i]/a[j];
                        for(p=0;p<4;p++)
                        {
                            c[0]=b[p]+a[k];c[1]=b[p]-a[k];
                            c[2]=b[p]*a[k];c[3]=b[p]/a[k];
                            for(q=0;q<4;q++)
                            {
                                d[0]=c[q]+a[r];d[1]=c[q]-a[r];
                                d[2]=c[q]*a[r];d[3]=c[q]/a[r];
                                for(s=0;s<4;s++)
                                {
                                    if(fabs(d[s]-24)<0.001)
                                     {printf("((%-1.0f%c%-1.0f)%c%-1.0f)%c%-1.0f=24\n",a[i],g[p],a[j],g[q],a[k],g[s],a[r]);}
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

float Pb(float x,float y,float z,float w)
{
    int i,j,k,r,p,q,s;float a[4],b[6],c[6],d[6];
    a[0]=x;a[1]=y;a[2]=z;a[3]=w;
    char g[4]="+-*/";
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            for(k=0;k<4;k++)
            {
                for(r=0;r<4;r++)
                {
                    if(i!=j&&i!=k&&i!=r&&j!=k&&j!=r&&k!=r)
                    {
                        b[0]=a[i]+a[j];b[1]=a[i]-a[j];
                        b[2]=a[i]*a[j];b[3]=a[i]/a[j];
                        c[0]=a[k]+a[r];c[1]=a[k]-a[r];
                        c[2]=a[k]*a[r];c[3]=a[k]/a[r];
                        for(p=0;p<4;p++)
                        {
                            for(q=0;q<4;q++)
                            {
                                d[0]=b[p]+c[q];d[1]=b[p]-c[q];
                                d[2]=b[p]*c[q];d[3]=b[p]/c[q];
                                for(s=0;s<4;s++)
                                {
                                    if(fabs(d[s]-24)<0.001)
                                    {printf("(%-1.0f%c%-1.0f)%c(%-1.0f%c%-1.0f)=24\n",a[i],g[p],a[j],g[s],a[k],g[q],a[r]);}
                                }
                            }
                        }                      
                    }
                }
            }
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值