#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#define NUM 4
enum abcd{D,A,C,B};
enum Y_N{NO,YES};
void choice(enum abcd);
void mydisplay(const int []);
enum Y_N isrational(int,const int[],enum abcd);
int main(void)
{
choice(D);
return 0;
}
void choice(enum abcd choicing)
{
static int choiced[NUM];
int i;
if(choicing>B)
{
printf("找到符合要求的数:");
mydisplay(choiced);
return;
}
for(i=0;i<=9;i++)
{
if(isrational(i,choiced,choicing)==YES)
{
choiced[choicing]=i;
choiced[choicing]=i;
choice(choicing+1);
}
}
return;
}
void mydisplay(const int choiced[])
{
printf("%d%d%d%d",choiced[A],choiced[B],choiced[C],choiced[D]);
printf("\n");
}
enum Y_N isrational(int i,const int choiced[],enum abcd choicing)
{
switch(choicing)
{
case D:return (i!=0)?YES:NO;
case A:return (i!=0&&(choiced[D]*9)%10==i
&&i*9<=9)?YES:NO;
case C:return YES;
case B:return (choiced[D]*9+choiced[C]*90+i*900+choiced[A]*9000==
choiced[A]+i*10+choiced[C]*100+choiced[D]*1000)?YES:NO;
}
}
一个四位数的9倍仍然是四位数,但是数字次序相反,编程求此四位数
最新推荐文章于 2019-03-10 22:34:02 发布