开发者

Python与C语言分别解决完全平方数问题

开发者 https://www.devze.com 2022-12-12 12:33 出处:网络 作者: 是梦吧,是你吧!
1 案例 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

1 案例

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

2 分析

由题意我们可以设该数为x ,加100后得到的完全平方数为

Python与C语言分别解决完全平方数问题

再加168后得到的完全平方数为

Python与C语言分别解决完全平方数问题

则:

Python与C语言分别解决完全平方数问题

得:

Python与C语言分别解决完全平方数问题

可以利用的条件: 

Python与C语言分别解决完全平方数问题

3 python实现

(1)方法一:

假设这个数字是:x

条件一:x+100是一个完全平方数

条件二:x+100+168也是一个完全平方数

import math
for i in range(-100,2000):
    if (int(math.sqrt(i+100)))**2 == i+100:
        if int(math.sqrt(i+268))**2 == i+268:
            print(i,end=' ')

#================结果================

-99 21 261 1www.cppcns.com581

Process finished with exit code 0

(2)方法二 

其实可以采用逆向思维:我们可以分别假设:

(1)x+100开平方后的数字是:ahttp://www.cppcns.com

(2)x+100+168开平方后后的数字是:b

那么的话就存在如此关系:

1):

Python与C语言分别解决完全平方数问题

2):

Python与C语言分别解决完全平方数问题

for i in range(0,100):
    for j in range(0,100):
        if i**2 - j**2 == 168:
            print("数字是:{} ;i = {} ;j = {}".format(j**2 - 100,i,j))

#====================结果========================

数字是:-99 ;i = 13 ;j = 1

数字是:21 ;i = 17 ;j = 11

数字是:261 ;i = 23 ;j = 19

数字是:1581 ;i = 43 ;j = 41

Process finished with exit code 0

4 C语言实现

#include "stdio.h"
#include "math.h"
 
int main(void)
{
	int x = -100;
	d编程客栈ouble y = 0, z = 0;
	do {编程客栈
		y = sqrt(x + 100);
		z = sqrt(x + 100 + 168);
		if (y == (int)y && z == (int)z)
			printf("%d\n", x);
		x++;
	} while ((z + y) > 0 && (z + y) <= 168);
 
 
www.cppcns.com	return 0;
}

Python与C语言分别解决完全平方数问题

到此这篇关于Python与C语言分别解决完全平方数问题的文章就介绍到这了,更多相关Python 完全平方数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号