问题描述
  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. Redis 数据库入门指南

    Redis 是一个开源数据库,它使用内存数据结构存储,可作为数据库.缓存和消息代理使用.Redis 支持丰富的数据结构,有:字符串(Strings).哈希(Hashs).列表(Lists).集合(Se ...

  2. D3数据绑定

    这里转载一个非常经典的关于D3数据绑定的帖子,由D3作者自己写的,非常棒,以至于我忍不住全文copy到此. 原文地址 Thinking with Joins Say you’re making a b ...

  3. Http、Https请求工具类

    最近在做微信开发,使用http调用第三方服务API,有些是需要https协议,通过资料和自己编码,写了个支持http和https的工具类,经验证可用,现贴出来保留,也供需要的人使用(有不足的地方,也请 ...

  4. 通过sql server 连接mysql

    图文:通过sql server 连接mysql   1.在SQL SERVER服务器上安装MYSQL ODBC驱动; 驱动下载地址:http://dev.mysql.com/downloads/con ...

  5. Daily Scrum Meeting ——SeventhDay(Beta)12.15

    一.Daily Scrum Meeting照片 二.Burndown Chart 想做的太多,冲刺仍在继续 三.项目进展(check-in) 1.完成了登录注册剩下的所有界面 2.更改通知详情和活动详 ...

  6. Asia Hong Kong Regional Contest 2016

    A. Colourful Graph 可以在$2n$步之内实现交换任意两个点的颜色,然后就可以构造出方案. #include <bits/stdc++.h> using namespace ...

  7. 实现Myxls设置行高的功能(转)

    MyXLS是一个导出Excel的好工具,速度快,体积小,而且也不用担心使用Com生成Excel时资源释放的问题了.但是作者提供的代码没有设置行高 要实现这个效果,首先需要修改两个文件: 1.Row.c ...

  8. [IOS]使用了cocoapods 抱错Pods was rejected as an implicit dependency for ‘libPods.a’ because its architectures ......

    Pods was rejected as an implicit dependency for ‘libPods.a’ because its architectures ‘i386’ didn’t ...

  9. 利用闭包实现多次ajax请求只执行最后一次

    点一个按钮,则向服务器请求资源,不作处理时,多次点击后会有很多个请求在等待.我们知道一般我们用ajax是异步请求,那么我们快速重复点击一个按钮得到的结果其实我们并不知道是哪次点击的结果可能是第一次可能 ...

  10. 有哪些LabVIEW快捷键让你相见恨晚

    前言 任何一门工具,当你使用它到极致的时候,往往都朝着这样子的两个方向发展 1. 具有鼠标操作功能的软件,他的使用的极致就是脱离鼠标,迈向键盘 2. 主要是键盘操作的,他的极致就是脚本自动化,或者说一 ...