用c++编写程序。在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同。
来源:互联网 发布:js使用base64显示图片 编辑:程序博客网 时间:2024/06/05 20:31
一、题目解析
要找出的数显然需要满足三个条件:
1.数的范围是从1-99999.的整数。
2.数满足是完全平方数。
3.数中有两位数字相同。
二、编程思路:简化条件的限制,直接对一个数的平方做循环,并让平方数满足该范围。判断两位数字相同可以采用排序算法加去重来实现。具体实现代码如下:
#include <iostream>#include <stdio.h>#include <vector>#include <algorithm>using namespace std;bool function(int n){ vector<int> vec; int ntenthousand = n / 10000; int nthousand = n % 10000 / 1000; int nhun = n % 1000 / 100; int nten = n % 100 / 10; int nge = n % 10; if (ntenthousand!=0) { vec.push_back(ntenthousand); vec.push_back(nthousand); vec.push_back(nhun); vec.push_back(nten); vec.push_back(nge); } else{ if (nthousand!=0) { vec.push_back(nthousand); vec.push_back(nhun); vec.push_back(nten); vec.push_back(nge); } else { if (nhun!=0) { vec.push_back(nhun); vec.push_back(nten); vec.push_back(nge); } else { if (nten!=0) { vec.push_back(nten); vec.push_back(nge); } else { return false; } } } } sort(vec.begin(),vec.end()); int oldsize = vec.size(); vec.erase(unique(vec.begin(),vec.end()), vec.end()); int newsize = vec.size(); if(oldsize != newsize) return true; else return false;}int main(){int n,j=0;for (int i = 0; i*i < 100000; ++i){n = i*i;if (function(n)){cout << n << " ";++j; if (j%10==0) { cout << endl; }}}cout << endl;return 0;}
样例输出:100 3969 11025 19600 31329 4752460516 76729 99225
121 4225 11236 19881 32400 48400 61009 77284 99856
144 4489 11449 20449 33124 4884162001 77841
225 4624 11664 21025 3348949284 62500 78400
400 4900 11881 21316 3385649729 63001 80089
441 5625 12100 ...
阅读全文
1 0
- 用c++编写程序。在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同。
- 题目:请在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同,如:144,676。用c语言编写(不能用数字转换成字符串)。
- 请在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同,如:144,676。
- 99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同
- 在小于99999的正整数中,找出即是完全平方数,又有两位数字相同的数。
- 在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;他既是完全平方数,又是两位数字相同,例如144,676等
- 编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12
- [C]求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12
- 一个整数称为完全平方数,是指它的值是另一个整数的平方。如81是个完全平方数,因为它是9的平方。请按要求完成:①在三位的正整数中寻找所有完全平方数;例如:144(12*12),676(26*26)
- 求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12
- 判断任一给定整数N是否满足条件: 它是完全平方数,又至少有两位数字相同,如144、676等。
- 问题十八: 一个整数(小于100000),它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多?
- 13.在100-999中找出符合条件的数
- 找符合条件的数(编程之美)
- 《编程之美》找符合条件的数
- 循环三 找符合条件的最小数
- 【程序13】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
- 【程序3】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
- Matlab小波包分解后如何求各频带信号的能量值?
- import this package
- 二分查找图解
- C#保存CookieContainer到文件
- KMP模版:子串是否出现
- 用c++编写程序。在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同。
- 文章标题
- 设计模式-单件模式
- 运行拷贝的scrapy项目遇到的两个问题的解答
- 第三周项目一(1)
- android——layout标签理解
- 解决win8使用pip安装numpy后无法使用
- 计算机组成原理与体系结构---CISC和RISC
- Linux 常用命令