鱼C论坛

 找回密码
 立即注册
查看: 993|回复: 12

[已解决]急,求大佬看看。

[复制链接]
发表于 2020-5-28 11:30:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入n,m。n为x+y,m为xy。求nm是否符合此要求。求详细解答和思路。
最佳答案
2020-5-29 22:50:54
jack陈ZJ 发表于 2020-5-29 22:45
懂了,你看我代码写的对不对。
int n,m;
scanf("%d %d",&n,&m);


good job.
格式再好一些,就完美了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-28 11:33:57 | 显示全部楼层
if (n == x+y)
   printf("符合要求");
if (m == x*y)
  printf("符合要求");
是这样的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 14:48:52 | 显示全部楼层
本帖最后由 XFCoding 于 2020-5-28 14:53 编辑

楼主题目没有描述清楚,我这里做的是给定两个非负整数 n,m。是否能找到非负整数x,y使得 x+y= n, x*y = m。找出这样的x和y。
不知道题主是不是这意思,
思路比较简单,迭代器i从0到n去遍历,这样肯定是满足i + (n - i) = n, 再去判断 i * (n - i)是否等于m即可。
#include<stdio.h>
void checkedFine(int n, int m);

int main(){
        int n,m;
        printf("请输入n和m使用空格分隔:\n");
        scanf("%d %d",&n,&m);
        checkedFine(n,m);
        return 0;
}

void checkedFine(int n, int m){
        
        int count = 0;
        for(int i =0; i <= n; i++){
                if(i*(n-i) == m){
                        printf("第%d对符合条件的解是:x = %d,y= %d\n",++count,i,n-i);
                }
        }
        if(count == 0){
                printf("没有符合条件的x和y\n");
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 15:18:07 | 显示全部楼层
XFCoding 发表于 2020-5-28 14:48
楼主题目没有描述清楚,我这里做的是给定两个非负整数 n,m。是否能找到非负整数x,y使得 x+y= n, x*y = m。 ...

其实题目应该是,判断n和m是否存在,存在就输出yes就行了,但是有范围(-10000<n,m<10000),也是用这种方法吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 15:35:10 | 显示全部楼层
jack陈ZJ 发表于 2020-5-28 15:18
其实题目应该是,判断n和m是否存在,存在就输出yes就行了,但是有范围(-10000

n,m 不是你输入的吗肯定存在啊。。。应该是判断是否有x,y使得n,m满足条件吧,你能把题目原原本本打出来看看不,我都迷糊了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 21:47:35 | 显示全部楼层
你这不就是求一元二次方程的根么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-29 11:05:17 | 显示全部楼层
题目:有二个整数,它们加起来等于某个整数,乘起来又等于另一个整数。
例如:
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”,明确有还是没有这种整数就行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-29 11:08:59 | 显示全部楼层
赚小钱 发表于 2020-5-28 21:47
你这不就是求一元二次方程的根么?

我也想过,但是就是想不通,求解释。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 12:00:18 | 显示全部楼层
jack陈ZJ 发表于 2020-5-29 11:08
我也想过,但是就是想不通,求解释。

你都想到了一元二次方程,用韦达定理它不香吗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-29 15:16:51 | 显示全部楼层
赚小钱 发表于 2020-5-29 12:00
你都想到了一元二次方程,用韦达定理它不香吗。

我是不懂这个题目与一元二次方程有什么联系,能详细说说吗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 15:31:27 | 显示全部楼层
jack陈ZJ 发表于 2020-5-29 15:16
我是不懂这个题目与一元二次方程有什么联系,能详细说说吗。

展开 (x - x1)(x - x2) = 0
然后用待定系数 ax^2 + bx + c = 0
可以得出:
1. x1 + x2 与 (a, b, c) 的关系
2. x1 乘以 x2 与 (a, b, c) 的关系

找一下初中课本
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-29 22:45:33 | 显示全部楼层
赚小钱 发表于 2020-5-29 15:31
展开 (x - x1)(x - x2) = 0
然后用待定系数 ax^2 + bx + c = 0
可以得出:

懂了,你看我代码写的对不对。
int n,m;
scanf("%d %d",&n,&m);
if((n*n-4*m)>=0)  printf("Yes\n");
else  printf("NO\n")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 22:50:54 | 显示全部楼层    本楼为最佳答案   
jack陈ZJ 发表于 2020-5-29 22:45
懂了,你看我代码写的对不对。
int n,m;
scanf("%d %d",&n,&m);


good job.
格式再好一些,就完美了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 17:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表