| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 665 人关注过本帖, 1 人收藏
标题:ACM的题目,你也来做做吧!
取消只看楼主 加入收藏
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
结帖率:98.26%
收藏(1)
已结贴  问题点数:20 回复次数:1 
ACM的题目,你也来做做吧!
今天晚上做ACM题的时候遇到了这样一道题,当时我的思路是想通过求解方程的解来判断,可是发现这种思路太垃圾了,于是就先不管了,寻思着等吃完饭之后再看看吧。吃饭的时候和同学讨论了一下这道题,最后我发现这个可以通过因式分解来做,于是吃完饭之后就把代码写了出来,调式了一下,就通过了!

在这里把这道题贴出来,给大家看看,然后再把我的代码贴出来,给大家看看,并不是想告诉大家我有多牛,只是想说明一个问题:做题的思路与方法很重要

同时也希望学习编程的学生能够多去做做关于ACM的题,毕竟可以锻炼你的解题的思路!!同时对自身的编程能力与水平是一个很大的提高和进步!

有二个整数,它们加起来等于某个整数,乘起来又等于另一个整数,它们到底是真还是假,也就是这种整数到底存不存在,实在有点吃不准,你能快速回答吗?看来只能通过编程。
例如:
x + y = 9,x * y = 15 ? 找不到这样的整数x和y
1+4=5,1*4=4,所以,加起来等于5,乘起来等于4的二个整数为1和4
7+(-8)=-1,7*(-8)=-56,所以,加起来等于-1,乘起来等于-56的二个整数为7和-8

 
Input
输入数据为成对出现的整数n,m(-10000<n,m<10000),它们分别表示整数的和与积,如果两者都为0,则输入结束。


Output
只需要对于每个n和m,输出“Yes”或者“No”,明确有还是没有这种整数就行了。

Sample Input
9 15
5 4
1 -56
0 0
Sample Output
No
Yes
Yes

这个是我写的代码:

程序代码:
# include <stdio.h>

#define BOOL int

int main()
{
    int n , m ;
    int i , j , a ;
    BOOL flag ;
    while(scanf("%d%d" , &n , &m) != EOF && (n != 0 || m != 0))
    {
        flag = 0 ;
        a = m ;
        if(m < 0)
            m = -m ;
        for(i = -m ; i <= m ; i++)
            if(i != 0 && m % i == 0)
            {
                j = a / i ;
                if(j + i == -n)
                {
                    flag = 1 ;
                    break ;
                }
            }
        if(flag == 1)       
            printf("Yes\n") ;
        else
            printf("No\n") ;
    }
    return  0 ;
}
搜索更多相关主题的帖子: ACM 
2010-12-11 21:15
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
回复 2楼 御坂美琴
当时想到了这种方法,可是后来觉得这种方法需要计算一个乘方与四倍,如果输入的数太大了。可能会超出了int类型的范围,如果定义成double类型的话在判断x 和 y是否是整数的时候比较麻烦,于是就想出了我的那种方法,嘻嘻!

愿用余生致力编程
2010-12-11 21:48
快速回复:ACM的题目,你也来做做吧!
数据加载中...
 
   



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

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