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

/*题目描述:求出5、6位十进制中所有的特殊回文数—— 每位数字之和等于输入的一个整数n(1<=n<=54)。
思路:将5、6位十进制的每一位拆分出来比较,又分两种情况:五位的和六位的。*/
#include<stdio.h>
int main(){
int a,b,c,d,e,f,n;
long i;
scanf("%d",&n);
for(i=10000;i<1000000;i++){
if(i<100000){
a = i / 10000 % 10;
b = i / 1000 % 10;
c = i / 100 % 10;
d = i / 10 % 10;
e = i / 1 % 10;
if(a==e && b==d && a+b+c+d+e==n){
printf("%ld\n",i);
}
}
else if(i>=100000){
a = i / 100000 % 10;
b = i / 10000 % 10;
c = i / 1000 % 10;
d = i / 100 % 10;
e = i / 10 % 10;
f = i / 1 % 10;
if(a==f && b==e && c==d && a+b+c+d+e+f==n){
printf("%ld\n",i);
}
}
}
}

方案二:

#include<stdio.h>
int main(){
int n,i,j,sum;
char str[10];
scanf("%d",&n);
for(i=10000;i<1000000;i++){
/*将当前的i值转成字符赋给str,即str[5]="10000"*/
sprintf(str, "%d", i);
sum = 0;//初始化sum
for(j = 0; str[j]; j++)
/*字符和数字是有区别的。要将字符变成数字,需要减去一个字符0*/
sum += str[j] - '0';
if(sum != n)
continue;
if(i < 100000 && str[0] == str[4] && str[1] == str[3])
printf("%d\n", i);
else if(i >= 100000 && str[0] == str[5] && str[1] == str[4] && str[2] == str[3])
printf("%d\n", i);
}
return 0;
}

 
 
 
 
 
 
 
 
 
 

C语言 · 特殊回文数的更多相关文章

  1. c语言求回文数的三种算法的描述

    c语言求回文数的三种算法的描述 题目描述 注意:(这些回文数都没有前导0) 1位的回文数有0,1,2,3,4,5,6,7,8,9 共10个: 2位的回文数有11,22,33,44,55,66,77,8 ...

  2. C语言之回文数算法

    "回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这样的特征,成为回文数(pa ...

  3. Leecode刷题之旅-C语言/python-9.回文数

    /* * @lc app=leetcode.cn id=9 lang=c * * [9] 回文数 * * https://leetcode-cn.com/problems/palindrome-num ...

  4. C语言判断回文数

    #include<stdio.h> #include<stdlib.h> int main() { //1.得到这个数字 2.翻转 3.进行比较 4.如果相同 就输出 是 否则 ...

  5. C 语言实例 - 判断回文数

    C 语言实例 - 判断回文数 判断一个数是否为回文数. 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=,则称n为一回文数:但若n=,则n不是回文数 ...

  6. 【LeetCode】 #9:回文数 C语言

    目录 题目 思路 初步想法 进一步想法 最后想法 总结 最近打算练习写代码的能力,所以从简单题开始做. 大部分还是用C语言来解决. @(解法) 题目 判断一个整数是否是回文数.回文数是指正序(从左向右 ...

  7. 基于visual Studio2013解决C语言竞赛题之0518回文数

     题目

  8. 基于visual Studio2013解决C语言竞赛题之1060寻找回文数

       题目 解决代码及点评 /* 60. 回文数指左右数字对称的数,如121,2112都是回文数.回文数猜想:取一任意十进制数,将其倒过来,并将这两个数相加, 然后把这个相加的和倒过来再与 ...

  9. C语言实现计算双基回文数详解

    双基回文数的定义: 如果一个正整数n至少在两个不同的进位制(二进制<=进制=<十进制)b1和b2下都是回文数,则称n是双基回文数. 根据定义,简单的说就是在二进制到十进制之间(包括十进制和 ...

随机推荐

  1. IIS 图片加载不出来

    如何为IIS增加svg和woff格式文件的支持 在我们新版的TopFlow中,使用了最新的bootstrap框架,此框架使用了字体文件来显示矢量的图标,为了能在IIS上正常显示图标,可以通过增加iis ...

  2. Vue - 实例

    1.实例属性介绍如下图所示: 具体介绍如下: A.$parent:访问当前组件的父实例 B.$root:访问当前组件的根实例,要是没有的话,则是自己本身 C.$children:访问当前组件实例的直接 ...

  3. 窗体Showmedol 遇到的奇怪异常: cannot make a visible window model

    //窗体Showmedol 遇到的奇怪异常: cannot make a visible window model //背景:ShowModal A窗体,A窗体再ShowModal B窗体:A是透明背 ...

  4. oracle中row_number和rownum的区别和联系(翻译)

    http://www.tuicool.com/articles/bI3IBv 附问题:有以下一个SQL语句: SELECT * FROM ( SELECT t.*, row_number() OVER ...

  5. checkBox 开关按钮

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. window下xampp配置多端口、多站点步骤

    好些日子没整理知识了,许多新东西不整理出来时间一长就淡忘了.看来以后得继续坚持整理. 配置XAMPP多端口.多站点如下步骤: 多端口: (一个域名下同时配置多个端口,从而达到访问不同程序) 效果例如: ...

  7. Oracle Database 创建HR模式

    其实Oracle是自带演示模式的,我还一直在跪舔外面的培训机构的sql文件 首先以system 用户登陆SQL 输入: alter user hr account unlock identified ...

  8. 根据异常处理对 Java 方法的层次分类

    我根据异常处理对 Java 的方法分为三个层次:1.执行层,2. 处理层,3. 调用层. 执行层方法只抛出异常 throws Exception,是作为代码的基层操作者,可能有多个层次. 处理层方法使 ...

  9. S3C2440UART之FIFO

    一.基础知识 S3C2440有3个独立的串口,每一个都可以利用DMA和中断方式操作.每个包含2个64字节FIFO,一个收,一个发.非FIFO模式相当于FIFO模式的一个寄存器缓冲模式.每一个UART有 ...

  10. CentOS安装配置redis

    安装前准备,安装gcc 先用 gcc -v命令检测本机是否安装gcc,如果没有则用下面命令安装: yum install cpp yum install binutils yum install gl ...