求这样两个数据:5位数=2*4位数,9个数字各不相同。

不来虚的,直接上代码:

#include<stdio.h>
int a[10];//用来计算各个数字的个数,分别是从0到9
int amount=0;//计算总共的这个符合要求的数的对数
int  find(int i)
{
    int j,b,c;
    int flag=1;//标志量,如果为1则说明没有重复的数字的个数,为符合要求的
    int count=0;
    for(j=0;j<10;j++)
        a[j]=count;//让开始的个数都为0,以便计算
    b=2*i;
    c=b+i*100000;//链接两个数,更方便计算最后是不是有重复的数字
    for(j=1;j<=9;j++)
    {
        count=c%10;
        c=c/10;
        a[count]=a[count]+1;
        if(a[count]>1)
            flag=0;//判断是否有重复的数字
    }
    if(flag==1)
    {
        printf("%6d%6d\n",i,b);
        amount=amount+1;//输出
    }
    else
        return 0;
}
void main()
{
    int i;
    for(i=5000;i<9999;i++)
        find(i);
    printf("符合要求的数共有%d对!",amount);
}

结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43911526/article/details/89813344