快乐打码 2023-01-12 15:10 采纳率: 69%
浏览 29

满足特定条件的4位数,我这样写 为什么是错的,要怎么写才对

一个四位正整数,满足如下条件:
由数字1到数字9组成;各位数字都不相同;
从左至右数字降序排列;
并且相邻的两个数字前一个不能是后一个的倍数;
并且这4位数字不能都是奇数,也不能都是偶数。
编程输入两个4位整数a和b,输出区间[a,b]之间符合上述条件的所有数。
输入样例:
5000 7000
输出样例:
5432
6432
6532
6543

#include<stdio.h>
int main() {
 int a,b,c,d;
 int m,n;
 scanf("%d %d",&m,&n);
 if(m>1000&&n>5000&&m<n) {
  int z=m/1000,y=n/1000;
  for(a=z; a<y; a++)
   for(b=2; b<=a-1; b++)
    for(c=2; c<=b-1; c++)
     for(d=2; d<=c-1; d++)
      if(a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)  
       if(a%b!=0&&b%c!=0&&c%d!=0)
        if((a%2==0&&b%2==0&&c%2==0&&d%2==0)||(a%2!=0&&b%2!=0&&c%2!=0&&d%2!=0)) {
        } else {
         int num=a*1000+b*100+c*10+b;
         if(num>m&&num<n)printf("%d%d%d%d\n",a,b,c,d);
        }
 }
 return 0;
}

  • 写回答

2条回答 默认 最新

  • SSS4362 2023-01-12 15:41
    关注

    以下链接提供了一个解法,你试试
    https://blog.csdn.net/m0_64782700/article/details/123115949

    评论

报告相同问题?

问题事件

  • 创建了问题 1月12日