Problem1199--寻找指定范围内的反序数对

1199: 寻找指定范围内的反序数对

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 18  Solved: 1
[Submit] [Status] [Web Board] [Creator:]

Description

【程序功能】 在给定的范围内查找并输出所有满足以下条件的整数对(a,b)及与((a,b)关联的反序数对(c,d):

(1)a小于b;(2)a和b的十进制表示均是三位数且各位上的数字互不相同;(3)a的反序数(记作c)和b的反序数(记作d)也都是三位数并且a*b等于c*d。

例如:与整数对(302,406)关联的反序数对是(203,604),302*406=203*604.因此(302,406)是满足上述条件的反序数对。

【编程要求】

1  编写函数int find(int x[][4],int m,int n)实现以下功能:若m和n的十进制表示不是三位数,则返回0。否则,将取值在[m , n]范围内所有满足上述条件的整数对以及与这些数对关联的反序数对保存到x指向的二维数组中,函数返回x数组中保存的数据行数。

2   编写函数main实现以下功能:声明一个1000行4列的二维数组a,输入两个自然数并保存到 m 和 n 中(m<n),用a数组作为实参调用find函数在[m , n] 范围内查找,将找到的满足上述条件的数组对及关联的反序数对保存到a数,按以下格式将a数组中数据输出屏幕,每行三组数,每组数之间用一个空格分开

Sample Input

300 450

Sample Output

301 * 309 = 103 * 903   302 * 406 = 203 * 604   304 * 403 = 403 * 304
306 * 402 = 603 * 204   312 * 426 = 213 * 624   314 * 413 = 413 * 314
321 * 369 = 123 * 963   324 * 423 = 423 * 324   402 * 408 = 204 * 804
412 * 428 = 214 * 824

HINT

 编写函数 int inv(int n),求n的反序数,如果不存在反序数,则函数返回0

inv (123) = 321  inv(122) =0

Source/Category