算法证明每一位都相同十进制数不是完全平方数

目录
  • 题意
    • Description
  • 解题思路
    • 证明
  • 代码

题意

Description

相信大家都做过"A+B Problem"了吧,这道题是它的加强版。

输入两个整数 A , B ,表示 A 个 B,例如 3 , 6 表示 666 。你只需要把“A个B”开根号。如果开根号后是个整数,输出开根后的数,否则输出“We donot have SPJ!”

解题思路

很显然,这题就是让我们判断“A个B”是不是完全平方数,我们从感觉上判断,形如 666 ⋯ 666 这样的数,一般来说都不是完全平方数,现在我们来证明一下。

证明

所以上述情况不是完全平方数。

故对于“ A个3,7”不是完全平方数。

所以对于任意三位数及以上的的"A个B",其必定不是完全平方数。

代码

// by Concyclics
#include <iostream>
using namespace std;
int main()
{
    int A,B;
    cin>>A>>B;
    if(B==0)
    {
        puts("0");
        return 0;
    }
    if(A==1)
    {
        if(B==1)
        {
            puts("1");
            return 0;
        }
        if(B==4)
        {
            puts("2");
            return 0;
        }
        if(B==9)
        {
            puts("3");
            return 0;
        }
    }
    puts("We donot have SPJ!");
    return 0;
}

以上就是算法证明每一位都相同十进制数不是完全平方数的详细内容,更多关于完全平方数的证明算法资料请关注我们其它相关文章!

(0)

相关推荐

  • Java计算一个数加上100是完全平方数,加上168还是完全平方数

    题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少? 程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果.请看具体分析: 程序设计: public class test { public static void main (String[]args){ long k=0; for(k=1;k<=100000l;k++) if(Math.floor(Math.sqrt(k+100))=

  • Python3 完全平方数案例

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

  • 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判断完全平方数的方法

    如下所示: # -*- 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

  • 算法证明每一位都相同十进制数不是完全平方数

    目录 题意 Description 解题思路 证明 代码 题意 Description 相信大家都做过"A+B Problem"了吧,这道题是它的加强版. 输入两个整数 A , B ,表示 A 个 B,例如 3 , 6 表示 666 .你只需要把“A个B”开根号.如果开根号后是个整数,输出开根后的数,否则输出“We donot have SPJ!” 解题思路 很显然,这题就是让我们判断“A个B”是不是完全平方数,我们从感觉上判断,形如 666 ⋯ 666 这样的数,一般来说都不是完全平

  • C++实现十进制数转换为二进制数的数学算法

    一.十进制转换为二进制的数学算法 设目标十进制数为n,用短除法一直除以2,循环这个过程并记录余数,当商为0时结束循环,余数从后往前读就是转换为的二进制数 eg: 二.代码实现 1.设计转换函数transfer // flag是位数控制器,用remainder来暂时保存每一位余数,y是转换的二进制结果.我们的目标是把流程结束后的余数倒序输出 ,比如13的二进制数1101,但是每次除以2后得到的余数都是个位数,所以我选择使用一个位数控制器flag,从初始值1开始和remainder相乘,然后迭代(每

  • 位运算实现十进制转换为二进制

    代码如下: 复制代码 代码如下: #include <iostream>        //将十进制数转化为二进制数,位运算的取位操作  using namespace std;  int main()  {         unsigned short i;         cout << "请输入一个小于65536的正整数" << endl;         cin >> i;         for(int j=15; j >

  • PHP中将ip地址转成十进制数的两种实用方法

    PHP中如何将ip地址转成十进制数呢?现在PHP中有很多时候都会用到ip地址,但是这个ip地址获取的时候都不是10进制的.那么PHP中如何将ip地址转成十进制数就是我们比较头疼的事情了,下面两种方法是我整理处理来相对比较简单的IP地址转成十进制数的方法.希望能对大家有所帮助. 方法一: 复制代码 代码如下: public function ipToLong(){ $ip = $_SERVER['REMOTE_ADDR']; $ip = explode('.', $ip); $ip = array

  • Python如何把十进制数转换成ip地址

    需要把ip地址转换为10进制数,然后也可以把10进制数转化为ip地址,计算机ping这个十进制数可以ping通对应的ip地址,说明已经实现功能 代码如下 # 引用正则来三等分字符串 import re # 转换成二进制数 bi = "{0:b}".format(18223104) # 补齐32位 bi = "0"*(32-len(bi))+bi # 8个一组算出每8个数字的十进制,然后再加","分隔 ret_ip_string = '.'.joi

  • javaScript强制保留两位小数的输入数校验和小数保留问题

    输入input 的格式校验: $(function(){ var data = $.trim($("#inputId").val()); //此正则表达式验证小数位是否超过两位,小数可为1位 || 2位 || 整数 if(!(/^\d+(\.\d{1,2})?$/.test(data ) || /^\d$/.test(data ) )){ alert("输入金额格式不对!最高精确到分"); return ; } //写入对应位置 $(".htmlTextC

  • C++实现十进制数转为其它进制数

    本文实例为大家分享了C++将十进制数转为其它进制数的具体代码,供大家参考,具体内容如下 一.思路:用辗转相除法 二.实现程序: #include <iostream> using namespace std; const int MAXN = 100; int main(int argc, const char * argv[]) { int num, n, arr[MAXN], i; // num存储输入的数,n存储进制 i = 0; cout << "请输入一个正整数

  • java实现ip地址与十进制数相互转换

    先看实例 代码如下 复制代码 代码如下: classip { privatestaticlongiptolong(stringstrip) //将127.0.0.1形式的ip地址转换成10进制整数,这里没有进行任何错误处理 { intj=0; inti=0; long[]ip=newlong[4]; intposition1=strip.indexof("."); intposition2=strip.indexof(".",position1+1); intpos

  • 计算机中数的表示

    (一)二进制电子计算机处理的信息,都是仅用"0"与"1"两个简单数字表示的信息,或者是用这种数字进行了编码的信息.这种数制叫做二进制.要了解计算机,首先要了解计算机中数的表示方法.任何一种数制都可以用以下四个规则来描述:基数规则:进位规则:位权规则,运算规则.这了区别不同数制表示的数,通常用右括另外的下标字母表示括号内的数制,十进制数用D表示,二进制用B表示,十六进制数用H表示.二进制用四个规则描述如下:二进制数只有"0"和"1&quo

  • ECMAScript 数据类型之Number类型

    目录 前言 练习场景 其他进制 八进制 十六进制 浮点值 科学计数法 小数值 浮点值精确度 值的范围 最大值与最小值 Infinity isFinite() 函数 NaN 练习场景 NaN特性 isNaN()函数 数值转换 Number() 语法 Number()函数转换规则: Number()函数场景练习 parseInt() 语法 parseInt()函数转换规则 进制转换 parseInt()函数练习场景 只有一个参数的场景 两个参数的场景 parseFloat() 语法 parseFlo

随机推荐