| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 632 人关注过本帖
标题:你是否也在做OJ上的题呢?
只看楼主 加入收藏
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
结帖率:98.26%
收藏
 问题点数:0 回复次数:2 
你是否也在做OJ上的题呢?
最近一有时间就到杭州电子科技大学ACM网站去做上面的题,因为以前没有做过,所以就从最基本的题目开始做起,开始的时候很不习惯上面对输入与输出格式的限制,感觉很不爽。可是慢慢的,发现已经适应了要求的输入与输出的格式限制!三天的时间做了30几道题,真的是收获不小,长了很多的见识,对思维绝对是一种很好的锻炼。比如在这里举一个例子吧:
这是题目:
求A^B的最后三位数表示的整数。
说明:A^B的含义是“A的B次方”

Input
输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。

Output
对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。

Sample Input
2 3
12 6
6789 10000
0 0

Sample Output
8
984
1

初看这道题目,我想很多学生都会去计算A^B , 然后将结果对1000取余,这样就得到了最后三位数 。这是很多人的思路,但是细想一下,如果因为数太大,而无法进行计算,那怎办呢??因此解题的思路与想法很重要。我们只需要的是最后的三位数,而不去管其他位的数是什么,因此我们只需要最后的三位数就可以了!

这样我们的思路就清晰了 ,这是我写的程序:大家参考一下吧!
# include <stdio.h>

int main()
{
    int a , b ;
    int n , m , i ;
    while(scanf("%d%d" , &a , &b) != EOF &&(a != 0 || b != 0))
    {
        n = a % 1000 ;
        m = n ;
        for(i = 1 ; i < b ; i++)
        {
            m = n * m ;
            m = m % 1000 ;
        }
        printf("%d\n" , m) ;
    }
    return 0 ;
}

这就是我这几天通过做题而得到的体会!呵呵!同时建议大家多去做做题!
搜索更多相关主题的帖子: 测试 大学 正整数 
2010-12-09 18:36
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
你说的这题,如果把范围改成1<=A,B<=100000000你的代码就无法通过了
对于这个题,我想你应该再试试找一个更好的解法

补充:LZ加一下群127893384

[ 本帖最后由 御坂美琴 于 2010-12-9 18:51 编辑 ]

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-12-09 18:48
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
从不做 acm的路过 ,/

我就是真命天子,顺我者生,逆我者死!
2010-12-09 20:17
快速回复:你是否也在做OJ上的题呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023237 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved