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

1 案例

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

2 分析

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

则:

得:

可以利用的条件:

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 1581
Process finished with exit code 0

(2)方法二

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

(1)x+100开平方后的数字是:a

(2)x+100+168开平方后后的数字是:b
那么的话就存在如此关系:

1):

2):

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;
	double 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);

	return 0;
}

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

(0)

相关推荐

  • Python3 完全平方数案例

    题目 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 程序分析 因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限: n=0 while (n+1)**2-n*n<=168: n+=1 print(n+1) 补充:用Python实现"有效的完全平方数"的一种方法 给一个正整数num,写一个函数判断它是否是一个完全的平方数,是则返回True,不是返回False 注意:不要使用任何内嵌的函数,如sqrt

  • python判断完全平方数的方法

    如下所示: # -*- coding: utf-8 -*- #简述:一个整数,它加上100和加上268后都是一个完全平方数 #提问:请问该数是多少? from math import sqrt def f(number): for x in range(0,number): m=sqrt(x+100) n=sqrt(x+268) if m==int(m) and n==int(n): print x if __name__=="__main__": f(1000) 运行结果: 21 2

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

    1 案例 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 2 分析 由题意我们可以设该数为x ,加100后得到的完全平方数为再加168后得到的完全平方数为. 则: 得: 可以利用的条件: 3 Python实现 (1)方法一: 假设这个数字是:x条件一:x+100是一个完全平方数条件二:x+100+168也是一个完全平方数 import math for i in range(-100,2000): if (int(math.sqrt(i+100)))*

  • 利用Python/R语言分别解决金字塔数求和问题

    目录 前言 1.前N阶乘求和 1.1 图解问题 1.2 算法流程 1.3 代码实现 1.4实验小结 2.金字塔数求和运算 2.1 图解问题 2.2 算法流程 2.3 代码实现 2.4 实验小结 总结 前言 此专栏为python与R语言对比学习的文章:以通俗易懂的小实验,带领大家深入浅出的理解两种语言的基本语法,并用以实际场景!感谢大家的关注,希望对大家有所帮助. “博观而约取,厚积而薄发!”谨以此言,望诸君共勉 本文将前两个小实验整理拼凑再了一起 :分别是“前N阶乘求和.金字塔数求和”.具体的项

  • 放弃 Python 转向 Go语言有人给出了 9 大理由

    转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时.今年 Stream 团队的主要编程语言从 Python 转向了 Go.本文解释了其背后的九大原因以及如何做好这一转换. 一.为什么使用 Go 原因 1:性能 Go 极其地快.其性能与 Java 或 C++相似.在我们的使用中,Go 一般比 Python 要快 30 倍.以下是 Go 与 Java 之间的基准比较: 原因 2:语言性能很重要 对很多应用来说,编程语言只是简单充当了其与数据集之间的胶水.语言本身的性能常常无关轻

  • 浅谈python和C语言混编的几种方式(推荐)

    Python这些年风头一直很盛,占据了很多领域的位置,Web.大数据.人工智能.运维均有它的身影,甚至图形界面做的也很顺,乃至full-stack这个词语刚出来的时候,似乎就是为了描述它. Python虽有GIL的问题导致多线程无法充分利用多核,但后来的multiprocess可以从多进程的角度来利用多核,甚至affinity可以绑定具体的CPU核,这个问题也算得到解决.虽基本为全栈语言,但有的时候为了效率,可能还是会去考虑和C语言混编.混编是计算机里一个不可回避的话题,涉及的东西很多,技术.架

  • python 使用递归回溯完美解决八皇后的问题

    八皇后问题描述:在一个8✖️8的棋盘上,任意摆放8个棋子,要求任意两个棋子不能在同一行,同一列,同一斜线上,问有多少种解法. 规则分析: 任意两个棋子不能在同一行比较好办,设置一个队列,队列里的每个元素代表一行,就能达到要求 任意两个棋子不能在同一列也比较好处理,设置的队列里每个元素的数值代表着每行棋子的列号,比如(0,7,3),表示第一行的棋子放在第一列,第二行的棋子放在第8列,第3行的棋子放在第4列(从0开始计算列号) 任意两个棋子不能在同一斜线上,可以把整个棋盘当作是一个XOY平面,原点在

  • python 中文编码乱码问题的解决

    目录 前言: 一.什么是字符编码. 1.ASCII 2.GB2312 3.Unicode 4.UTF-8 二.Python2中的字符编码 三.decode()与encode()方法 四.一个字符编码的例子 前言: 中文编码问题一直是程序员头疼的问题,而Python2中的字符编码足矣令新手抓狂.本文将尽量用通俗的语言带大家彻底的了解字符编码以及Python2和3中的各种编码问题. 一.什么是字符编码. 要彻底解决字符编码的问题就不能不去了解到底什么是字符编码.计算机从本质上来说只认识二进制中的0和

  • Python Ruby 等语言弃用自增运算符原因剖析

    目录 正文 为什么会存在自增自减运算符? 起源 提高程序运行效率?原子性? 简洁性 为什么一些现代编程语言取消了自增自减运算符? 副作用 迭代器替代了大多数自增自减运算符的使用场景 赋值语句返回值的消失 想要获取下标怎么办? 运算符重载带来歧义 一些其他的讨论 总结 正文 许多人也许会注意到一个现象,那就是在一些现代编程语言(当然,并不是指“最近出现”的编程语言)中,自增和自减运算符被取消了.也就是说,在这些语言中不存在i++或j--这样的表达,而是只存在i += 1或j -= 1这样的表达方式

  • Python信息抽取之乱码解决办法

    Python信息抽取之乱码解决办法 就事论事,直说自己遇到的情况,和我不一样的路过吧,一样的就看看吧 信息抓取,用python,beautifulSoup,lxml,re,urllib2,urllib2去获取想要抽取的页面内容,然后使用lxml或者beautifulSoup进行解析,插入mysql 具体的内容,好了貌似很简单很easy的样子,可是里面的恶心之处就来了,第一,国内开发网站的人在指定网站编码或者是保存网站源码的时候并没有考虑什么编码,反正一句话,一个网站即使你用工具查看或者查看源码头

  • python 调用c语言函数的实例讲解

    虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成.这样,就需要用python来调用c的代码了 具体流程: c编写相关函数 ,编译成库 然后在python中加载这些库,指定调用函数. 这些函数可以char ,int, float, 还能返回指针. 以下示例: 通过python调用c函数,返回"hello,world 字符串" 新建c语言文件 hello.c touch hello.c #include <stdio.h> char *get_str() {

  • python使用super()出现错误解决办法

    python使用super()出现错误解决办法 当我们在python的子类中调用父类的方法时,会用到super(),不过我遇到了一个问题,顺便记录一下. 比如,我写了如下错误代码: class A(): def dosomething(self): print "It's A" class B(A): def dosomething(self): super(B, self).dosomething() if __name__ == '__main__': b = B() b.doso

随机推荐