平方末尾
来源:互联网 发布:华为 软件版本说明 编辑:程序博客网 时间:2024/04/29 11:07
(有错误之处,望各位指出,谢谢!)
比如,25,64
虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数。
因为平方数的末位只可能是:[0, 1, 4, 5, 6, 9] 这6个数字中的某个。
所以,4325435332必然不是平方数。
如果给你一个2位或2位以上的数字,你能根据末位的两位来断定它不是平方数吗?
请计算一下,一个2位以上的平方数的最后两位有多少种可能性?
分析:
其实此题只需要算4-100的平方,他们平方结果后两位有多少种不同就是此题答案。因为不管几位数的平方,只要末尾两位数相同,256,2256他们平方后两位都是一样的。
所以只需要求得4-100平方的后两位有多少种即可。
C语言实现:
#include<stdio.h>
int has(int *b,int a,int c){//自定义方法,第一个参数:b数组,第二个参数:a数组中的一个值,第三个参数:b数组的长度
int i;
for(i = 0; i <= c ;i++){//开始遍历b数组
if(b[i] ==a)//如果b数组中有一个值与a相同,那么代表已经储存了该种情况,提前跳出for循环,开始下一次比较
return 0;//代表已经有一样的了
}
return 1;//没有找到
}
int main(){
int a[100]; //保存4-100平方的后两位
int b[100];//储存所有不同的结果
int i,c = 0;//c用来储存b数组的长度
for(i= 4;i <= 100 ;i++){//开始计算
a[i] = (((i*i)/10%10)*10)+((i*i)%10);//将结果的后两位取出来,保存在a数组中
for(i = 4 ; i<= 100;i++)//开始筛选不同的结果,将结果保存在b数组中
if(has(b,a[i],c)){//没有重复,将a[i]的值添加进b数组中
b[c] = a[i];
c++;//数组的长度增加
}
printf("%d",c); //a数组遍历完毕,输出b的长度c,也就是有多少种不同可能性
return 0;
}
答案:22种
16 25 36 49 64
81 0 21 44 69
96 56 89 24 61
41 84 29 76 9
4 1
因为有些结果为0开头,所以c语言输出就省略了,就输出单个数字
补全:
16 25 36 49 64
81 00 21 44 69
96 56 89 24 61
41 84 29 76 09
04 01
- 平方末尾
- 平方末尾
- 平方末尾题目
- 蓝桥杯之平方末尾
- 蓝桥杯 第七届决赛 平方末尾 JAVA
- /*自守数 如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数。*/
- 求平方
- 平方数
- 求平方
- 平方因子
- 平方剩余
- 平方数
- 平方数
- 平方数
- 平方求和
- 平方哈希表
- 平方数
- 平方数
- linux常见命令02
- spring--ssm整合
- recyclerview封装好的链接
- 面试题
- 织梦dede后台怎么查找文章内容关键词
- 平方末尾
- vue 常用组件库
- 解析Alexa列表
- HttpClient发送Get和Post请求
- mysql进阶
- python:从数据结构到高级算法(更新至2017.09.08)
- 在GeoServer中使用Udig配置的地图样式
- Linux下载默认JDK并安装新版本JDK
- windows 锁定批处理