算法笔记练习 题解合集php
题目连接web
题目描述
设N是一个四位数,它的9倍刚好是其反序数(例如:1234的反序数是4321)
求N的值算法
输入
程序无任何输入数据。数组
输出
输出题目要求的四位数,若是结果有多组,则每组结果之间以回车隔开。svg
i
遍历 1000 到 1111 的范围,如有符合条件的,输出;i
的四个数位上数字拆解到长度为 4 的数组中;9 * i
的四个数位上数字以相反的方向拆解到另外一个长度为 4 的数组中;#include <stdio.h> // 若四位数 a 是 b 的反序数,返回 1,不然返回 0 int isReverse(int a, int b){ int i; int ret = 1; int da[4] = {0}; int db[4] = {0}; for (i = 0; i < 4; ++i){ da[i] = a % 10; db[4-i-1] = b % 10; a /= 10; b /= 10; } for (i = 0; i < 4; ++i){ if (da[i] != db[i]) ret = 0; } return ret; } int main() { int i; for (i = 1000; i <= 1111; ++i) { if (isReverse(i, i * 9)) printf("%d\n", i); } return 0; }