鱼C论坛

 找回密码
 立即注册
查看: 1251|回复: 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.
格式再好一些,就完美了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-28 11:33:57 | 显示全部楼层
if (n == x+y)
   printf("符合要求");
if (m == x*y)
  printf("符合要求");
是这样的吗
小甲鱼最新课程 -> https://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即可。
  1. #include<stdio.h>
  2. void checkedFine(int n, int m);

  3. int main(){
  4.         int n,m;
  5.         printf("请输入n和m使用空格分隔:\n");
  6.         scanf("%d %d",&n,&m);
  7.         checkedFine(n,m);
  8.         return 0;
  9. }

  10. void checkedFine(int n, int m){
  11.        
  12.         int count = 0;
  13.         for(int i =0; i <= n; i++){
  14.                 if(i*(n-i) == m){
  15.                         printf("第%d对符合条件的解是:x = %d,y= %d\n",++count,i,n-i);
  16.                 }
  17.         }
  18.         if(count == 0){
  19.                 printf("没有符合条件的x和y\n");
  20.         }
  21. }
复制代码
小甲鱼最新课程 -> https://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),也是用这种方法吗?
小甲鱼最新课程 -> https://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满足条件吧,你能把题目原原本本打出来看看不,我都迷糊了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 21:47:35 | 显示全部楼层
你这不就是求一元二次方程的根么?
小甲鱼最新课程 -> https://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”,明确有还是没有这种整数就行了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我也想过,但是就是想不通,求解释。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

你都想到了一元二次方程,用韦达定理它不香吗。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我是不懂这个题目与一元二次方程有什么联系,能详细说说吗。
小甲鱼最新课程 -> https://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) 的关系

找一下初中课本
小甲鱼最新课程 -> https://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")
小甲鱼最新课程 -> https://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.
格式再好一些,就完美了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-7 15:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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