博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1013 POJ1519 Digital Roots(解法二)
阅读量:7011 次
发布时间:2019-06-28

本文共 910 字,大约阅读时间需要 3 分钟。

该问题的最佳解法是利用数论的9余数定理来计算数根。一个数的数根等于该数的9的余数,若余数为0则结果为9。

问题链接:。入门练习题,用C语言编写程序。

问题简述:输入若干正整数,求其数根,直到输入为0为止。

问题分析:数根是指整数的各个位的数字之和。如果其和为1位整数,则为结果;如果其和为多位整数,则再将各位数字相加,直到其和为1位数为止。这个问题的大陷阱是,没有指出整数是多少位的。即使使用unsignde long long类型,也可能会溢出的。所以,需要按字符串来处理。

程序说明:(略)。

之前的版本(参见:)先把数读到数据缓冲区再处理,所以重新写了这个程序。一边输入一边处理更好,可以省去存储空间。

另外一个版本参见:

AC的C语言程序如下:

/* HDU1013 POJ1519 Digital Roots */#include 
int main(void){ char in; int digitroot; for(;;) { // 读入一个字符 in = getchar(); // 判断结束条件 if(in == '0') break; // 计算数根 digitroot = 0; while(in != '\n') { // step1 计算各位数字之和 digitroot += in - '0'; // step2 每个10都变为1 digitroot = digitroot / 10 + digitroot % 10; in = getchar(); } // 输出结果 printf("%d\n", digitroot); } return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7564624.html

你可能感兴趣的文章
菜单项启动Activity
查看>>
Ubuntu下安装Python的Tkinter和Pmw库
查看>>
安装Nginx+Lua开发环境
查看>>
nginx nginx.pid无故文件丢失,日志无法正常轮转
查看>>
我的友情链接
查看>>
XML中元素VS属性
查看>>
wepy - 小程序快速开发框架
查看>>
nodejs找不到express命令
查看>>
ubuntu13.04通过lxc搭建容器java运行环境
查看>>
RHCE官方培训笔记---分享
查看>>
top命令是Linux下常用的性能分析
查看>>
使用memcached缓存tomcat7会话信息
查看>>
Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
查看>>
CentOS7:搭建SVN + Apache 服务器
查看>>
想要成为一个合格的软件架构师必须知道的事情
查看>>
cachestat、cachetop、pcstat-linux系统缓存命中率分析工具
查看>>
我的友情链接
查看>>
GET & POST
查看>>
z-index 属性
查看>>
什么是Neo4j
查看>>