前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小文’s blog–特殊回文数 –《蓝桥杯代码笔记4》

小文’s blog–特殊回文数 –《蓝桥杯代码笔记4》

作者头像
神无月
发布2018-06-25 17:31:41
5010
发布2018-06-25 17:31:41
举报
文章被收录于专栏:小文博客

特殊回文数

问题描述

  123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

输入格式

  输入一行,包含一个正整数n。

输出格式

  按从小到大的顺序输出满足条件的整数,每个整数占一行。

样例输入

52

样例输出

899998 989989 998899

数据规模和约定

  1<=n<=54。


题目分析

题目要求我们输出的就是一个回文数,不过它比较特殊——各位数字之和加起来等于输入的整数


解题思路

  1. 首先写一个回文数判断的函数
  2. 拆分各位数字求和。

代码示例

#include <stdio.h> int huiwenshu(int num, int res) { int temp=num, sum=0, count=0; while(num) { count=count+num%10; sum=sum*10+num%10; num/=10; } if(temp==sum && count == res) return 1; } int main() { int i, j, num, res; scanf("%d", &res); for(i=10000; i<1000000; i++) { if(huiwenshu(i, res)==1) printf("%d\n", i); } return 0; }

123456789101112131415161718192021222324

#include <stdio.h>int huiwenshu(int num, int res){   int temp=num, sum=0, count=0;     while(num)   {       count=count+num%10;        sum=sum*10+num%10;        num/=10;    }   if(temp==sum && count == res)   return 1; }int main(){    int i, j, num, res;     scanf("%d", &res);     for(i=10000; i<1000000; i++)    {        if(huiwenshu(i, res)==1)        printf("%d\n", i);     }    return 0; }

运行截图

重点知识点

回文数判断函数

int huiwenshu(int num, int res) { int temp=num, sum=0; while(num) { sum=sum*10+num%10; num/=10; } if(temp==sum) return 1; }

1234567891011

int huiwenshu(int num, int res){   int temp=num, sum=0;     while(num)   {        sum=sum*10+num%10;        num/=10;    }   if(temp==sum)   return 1; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年2月1日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 特殊回文数
  • 题目分析
  • 解题思路
  • 代码示例
  • 运行截图
  • 重点知识点
    • 回文数判断函数
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档