ArcTan

dfs
随笔 - 16, 文章 - 117, 评论 - 6, 引用 - 0
数据加载中……

hdu1013(模拟&数论)

http://acm.hdu.edu.cn/showproblem.php?pid=1013


这个题模拟也可以AC,刚开始我也是模拟AC的。不过看了百度看了大牛的博客,感谢大牛,知道了还有数论这回事。

n=0 1 2 3 4 5 6 7 8 9 10 11 12 13 ......... 100 101 102 103 ....
roots=0 1 2 3 4 5 6 7 8 9 1 2 3 4 .......1 2 3 4....
原来是以1.....9为循环节的。想想也是,每次增加1,那么层层迭代下来,最终当ans<10的时候也是每次增加了1。如此,可以归纳出
roots=(n-1)%9+1

注意输入的数字很大需要字符串读入,求和得n:

#include<stdio.h>
#include
<string.h>
#include
<math.h>

int main()
{
    
int i,n,tmp;
    
char a[1003];
    
while (scanf("%s",&a)&&a[0]!='0')
    {
        n
=0;
        
for (i=0;i<strlen(a); i++)
        {
            n
+=a[i]-48;
        }
        printf(
"%d\n",(n-1)%9+1);
    }
    
return 0;
}


啊,要多研究研究啊,本能只是止步于表面东西,大牛,Orz。。。


posted on 2012-03-07 17:09 wangs 阅读(1160) 评论(0)  编辑 收藏 引用 所属分类: ACM-201203


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理