首页 > 学院 > 开发设计 > 正文

蓝桥杯 两道回文数 BASIC-8 BASIC-9

2019-11-08 01:42:04
字体:
来源:转载
供稿:网友

两到关于回文数的题目,换了一下思维,从各位数字拆解后的情况分析


BASIC-8 回文数

这个较为简单,前两位完全决定了后两位以及数字的大小,确定前两位数字即可

题目

问题描述   1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。 输出格式   按从小到大的顺序输出满足条件的四位十进制数。

代码

#include<stdio.h>int main(){ int a,b; for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { PRintf("%d%d%d%d/n",a,b,b,a); } } return 0;}

BASIC-9 特殊回文数

这个稍微复杂一点,要考虑五位数和六位数两种情况,中间有一些判断的技巧,比如输入为奇数则一定不是六位数。

题目

问题描述   123321是一个非常特殊的数,它从左边读和从右边读是一样的。   输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 输入格式   输入一行,包含一个正整数n。 输出格式   按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例输出 899998 989989 998899 数据规模和约定   1<=n<=54。

代码

#include<stdio.h>int main(){ int n,a,b; scanf("%d",&n); if(n%2!=0) { for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { if(((n-2*a-2*b)>=0)&&((n-2*a-2*b)<=9)) { printf("%d%d%d%d%d/n",a,b,n-2*a-2*b,b,a); } } } } else{ for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { if(((n-2*a-2*b)>=0)&&((n-2*a-2*b)<=9)) { printf("%d%d%d%d%d/n",a,b,n-2*a-2*b,b,a); } } } for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { if(((n-2*a-2*b)>=0)&&((n-2*a-2*b)<=18)) { printf("%d%d%d%d%d%d/n",a,b,(n-2*a-2*b)/2,(n-2*a-2*b)/2,b,a); } } } } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表