2019独角兽企业重金招聘Python工程师标准>>>

原文地址:https://my.oschina.net/meiguizhinian/blog/873703

Description

有一种自然数,它的各位数字之和能被17整除。这个数的后继数(即这个数加1)的各位数字之和也能被17整除。求所有自然数中,从小到大第n个这样的数。

The Input

你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组输入数据占一行,其中仅有一个整数n(1≤n≤10)。在行首和行尾没有多余的空格。所有数据前后没有多余的空行,两组数据之间也没有多余的空行。

The Output

对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)依次输出一组对应的答案。每组答案占一行,每行中仅有一个整数,即题问描述中的第n个数。在行首和行尾不要输出多余的空格。在所有数据的前后,以及两组数据之间不要输出多余的空行。

Sample Input

1
3

Sample Output

8899
17899

解题思路

因为各位数字之和能被17整除,所以这数字各位之和是17的整数倍,所以最小值是89。

因为各位数字之和+1后能被17整除,那么+1的时候必然发生了进位,所以个位数字一定是9。

如果只发生1次进位,那么这个数字各位和+1前后的差值是8,那么必然有一个数字不能被17整除,所以十位数字也必然是9,不符合。

如果发生了2次进位,那么这个数字各位和+1前后的差值是17,如果一个数可以被17整除,那么+1后必然可以被17整除。

如果发生了3次进位,那么这个数字各位和+1前后的差值是26,不符合。

如果发生了4次进位,那么这个数字各位和+1前后的差值是35,不符合。

...

如果发生了n次进位,那么这个数字各位和+1前后的差值是9*n-1,这个差值要能被17整除。

综上得到关系式:9*n-1=17*m。

根据这个关系式,我们可以找出当n<10的时候,值有n=2符合条件。

所以十位数字和个位数字都是9,而99不能被17整除,所以这个数至少是3位的,且百位数字不能为9

十位数字+个位数字=18。

那么其他位的数字和至少需要34-18=16,那么如果这个数字仅有3位,不达不到要求的。所以这个数字至少4位。

形如:xa99(a!=9),x表示所有其他位数

因为这个数字+1后也要能被17整除,所以x+a+1必须是是17的整数倍,那么x+a最小值是16,所以xa的最小值是88。

代码

#include <stdio.h>
int easy02_sum_digit(long num){int sum = 0;while (num) {sum+=num%10;num/=10;}return sum;
}int main(){int k=0;int begin = 88;int list[10] = {};while (k!=10) {if ((easy02_sum_digit(begin)+18)%17==0 && easy02_sum_digit(begin+1)%17==0) {list[k++] = begin*100+99;}++begin;}while (scanf("%d",&k)!=EOF) {printf("%d\n",list[k-1]);}return 0;
}

转载于:https://my.oschina.net/meiguizhinian/blog/873703

Easy Problem 2 奇妙的数字相关推荐

  1. Easy Problem 7 求反数字字符串

    2019独角兽企业重金招聘Python工程师标准>>> 原文地址:https://my.oschina.net/meiguizhinian/blog/873714 Descripti ...

  2. 信息学奥赛一本通 1223:An Easy Problem | OpenJudge NOI 4.6 1455:An Easy Problem

    [题目链接] ybt 1223:An Easy Problem OpenJudge NOI 4.6 1455:An Easy Problem [题目考点] 1. 数制 2. 枚举 [解题思路] 解法1 ...

  3. POJ 2826 An Easy Problem?! 叉积求多边形面积 【计算几何】

    ACM博客_kuangbin POJ 2826 An Easy Problem?! An Easy Problem?! Time Limit: 1000MS   Memory Limit: 65536 ...

  4. 2015/Province_C_C++_C/6/奇妙的数字

    奇妙的数字 小明发现了一个奇妙的数字. 它的平方和立方正好把0~9的10个数字每个用且只用了一次. 你能猜出这个数字是多少吗? 请填写该数字,不要填写任何多余的内容. Code Python def ...

  5. 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - C.奇妙的数字

    奇妙的数字 小明发现了一个奇妙的数字.它的平方和立方正好把0~9的10个数字每个用且只用了一次. 你能猜出这个数字是多少吗? 请填写该数字,不要填写任何多余的内容. 代码 C++ #include & ...

  6. 蓝桥杯2015初赛-奇妙的数字

    题目描述 小明发现了一个奇妙的数字.它的平方和立方正好把0~9的10个数字每个用且只用了一次.你能猜出这个数字是多少吗? 输出 请输出该数字,不要输出任何多余的内容. 代码如下: #include & ...

  7. 2019年ICPC银川区域赛 Easy Problem(简单莫比乌斯函数 + 欧拉降幂)

    Easy Problem ∑a1=1m∑a2=1m∑a3=1m⋯∑an−1m∑anm[gcd(a1,a2,a3,-,an−1,an)==d](a1,a2,a3,-,an−1,an)k=dkd∑a1=1 ...

  8. 数论六之计算几何——An Easy Problem,Ancient Berland Circus,Open-air shopping malls

    可检验模板正确度 An Easy Problem?! Ancient Berland Circus Open-air shopping malls An Easy Problem?! problem ...

  9. 信息学奥赛一本通(1223:An Easy Problem)

    1223:An Easy Problem 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 5835     通过数: 4111 [题目描述] 给定一个正整数N,求最 ...

最新文章

  1. 看腾讯运维应对“18岁照片全民怀旧”事件的方案,你一定不后悔!
  2. 工欲善其事必先利其器——web调试工具firebug
  3. VirtualBox 使用 NAT 方式网络的 SSH 连接
  4. C# 操作其他进程ListView
  5. python中坐标怎么表示_如何在Python中以像素表示(有限)平面上的坐标
  6. [css] 你知道什么是动态伪类吗?
  7. Faiss源码剖析:类结构分析
  8. PHP Linux安装
  9. 开始学习openlayer
  10. MSP432的CCS工程配置以及使用J-Link下载程序
  11. Rayman的绝顶之路——Leetcode每日一题打卡19
  12. Android以太网架构源码
  13. Task watchdog got triggered错误
  14. 一文看懂人工智能芯片的产业生态及竞争格局
  15. Gossiping --解题报告
  16. 《ERP高级计划》书解读-APS案例分析之四缓冲的计算(蔡颖)(转)
  17. Java+MYSQL基于ssm的网上出差审批与费用报销管理系统
  18. MOS管的导通过程及损耗分析
  19. javase-Calendar
  20. Python+matplotlib可视化自定义轴域大小和位置

热门文章

  1. div border-radius
  2. thinkphp3.1迁移php7,ThinkPHP3.1迁移到PHP7的注意事项
  3. ConcurrentHashMap的源码分析-为什么要做高低位的划分
  4. NonfairSync.tryAcquire
  5. spring cloud netflix
  6. 一个客户端对应一个线程
  7. HTTP协议通信原理
  8. base64核心原理
  9. Log4j的组件和配置文件介绍
  10. spring FactoryBean的知识应用和Beanfactory的区别