完全平方数

  • 暴力法
  • 利用平方差公式分析取值范围
  • 极限法判断范围

暴力法

#include <stdio.h>int main()
{int i;int j;int k;for(i = 0; i < 1000; i++)//我们要判断的数{for(j = 0; j < 1000; j++)//判断i+100是否是j的平方数{if(i + 100 == j * j){for(k = j; k < 1000; k++)//判断i+168是否是k的平方{if(i + 100 + 168 == k * k){printf("%d\n",i);}}}}}return 0;
}

利用平方差公式分析取值范围

转自菜鸟教程:https://www.runoob.com/cprogramming/c-exercise-example3.html
推理严谨,考虑到了负数的情况

/*
/*
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:
假设该数为 x。
1、则:x + 100 = n^2, x + 100 + 168 = m^2
2、计算等式:m^2 - n^2 = (m + n)(m - n) = 168  平方差公式
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
7、接下来将 i 的所有数字循环计算即可。
*/#include <stdio.h>int main (void)
{int  i, j, m, n, x;for (i = 1; i < 168 / 2 + 1; i++){if (168 % i == 0){j = 168 / i;if ( i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0){m = (i + j) / 2;n = (i - j) / 2;x = n * n - 100;printf ("%d + 100 = %d * %d\n", x, n, n);printf ("%d + 268 = %d * %d\n", x, m, m);}}}return 0;
}

极限法判断范围

具体分析过程可看博主图片
转自:https://www.runoob.com/cprogramming/c-exercise-example3.html
原来是java代码转成了c,但是没有考虑负数情况,分析过程可以看原文

#include<stdio.h>
#include<math.h>// 判断该数值是否符合: x+100=m^2
double testDataM(double data) {// 求得: m^2double mPow = data*data;// 获取x的值double value = mPow - 100;return value;
}// 判断该数值是否符合:x+100+186=n^2
int testDataN(double data) {// 获取:n^2double mPow = data + 100 + 168;// 对n 开方double value = sqrt(mPow);// 判断 n开方后是否是整数if (value == (int) value) {return 1;}return 0;
}int main(){// 确定 m的值范围for (int i = 11; i <= 83; i++) {// 得到 x的值double x = testDataM(i);// 判断 n是否为整数if (testDataN(x)) {printf("这个数是:%.2f\n" , x);}}
}

c语言 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 待分析过程相关推荐

  1. 一个数加100是完全平方数,再加168又是一个完全平方数

    1.说明 暴力法都知道,但是如果起始没弄好会忽略-99这个数 更优的解法需要好的思路 package mainimport ("fmt""math" )func ...

  2. c语言有一个正整数加上100,c语言编程实现:一个整数,它加上100后是完全平方数,再加168又是完全平方数,求该数。...

    满意答案 问题:一整数,它加100后是完全平方数,再加168还是完全平方数,求该整数 解题思路:设该数为x,它加100后是A,再加168为B. 则因为A是完全平方数, 所以A为正数,且A=y*y,y为 ...

  3. 用C语言实现:如果一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

    用C语言实现: 如果一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? #include<stdio.h> #include<math.h&g ...

  4. 【c语言】一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,问该数是多少?

    一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,问该数是多少? 在100000以内判断 定义三个变量i,x,y 利用for循环让i在100000以内从1增加到100000,在循环 ...

  5. 3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

    一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 这道题思路分好几种,但大都比较简单,便不做详解. 1. c语言: #include<stdio.h&g ...

  6. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?...

    代码: package com.liron.p1; /*** 一个整数,它加上100后是一个完全平方数,再加上168又是* 一个完全平方数,请问该数是多少?* */ public class Topi ...

  7. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少...

    一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少 /*** 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少* * @a ...

  8. 萌新的Python练习实例100例(三)一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数

    题目: 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 分析: 根据题目得出: 整数x²=i+100,y²=i+100+168 采用for in 遍历为i ...

  9. 在10万以内判断,一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,求该数...

    题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 的结果 ...

最新文章

  1. ESXI中VM迁移或OVF模板导入linux系统常规操作
  2. 华为手机接计算机,华为手机怎么连接电脑,详细教您华为手机怎么连接电脑
  3. Java中equals、==和hashcode()
  4. Fedora 27安装vim插件YouCompleteMe
  5. 修改的梅花雪的日期控件。。只是一些小改动
  6. iPhone 14 Pro渲染图曝光 网友:冲这个外观就可以买了
  7. Matlab Tricks(二十五) —— 二维图像的 shuffle
  8. 埃及分数问题+迭代加深搜索
  9. word文档如何设置多级标题
  10. IOSOpenDev~使用MobileTerminal修改越狱后的root密码
  11. android 的android httpClient详解
  12. HTTPS 与 SSL 证书
  13. 微信公众号上传素材并回复关键词推送该素材:thinphp开发微信公众号如何上传临时素材库
  14. Windows OpenGL 图像褐色
  15. APP测试概念/Appium实战
  16. 真是没想到!原来微信还有这么厉害的翻译功能,一键轻松翻译
  17. Linux WWW 服务器
  18. 阿里妈妈广告进入联合早报网
  19. qt开发的一个局域网文件共享服务器
  20. iOS 下载 解压 使用 zip

热门文章

  1. 台阶--Nim游戏(博弈论)
  2. (FJWC2020)DTOJ 4688. 迫害 DJ
  3. 云开发系列课程 | FaaS场景下的SSR框架
  4. 【案例】 生成词云玩玩?
  5. Banner小组年会总结
  6. Linux常用命令练习
  7. python c++情侣网名是什么意思_c++和Python的选择?
  8. 南邮 OJ 1567 Suspicious Stocks
  9. 大数据技术之Sqoop
  10. 了解寄存器: EBP寄存器