找出所有满足如下条件的六位数:它是一个完全平方数(即为某个整数的平方);该数同时也是回文数(即该数等于它的逆序数)。(C++上机考试题2)
2017-06-08 09:18
716 查看
编写如下两个函数:
a) 编写函数 int fun(long *x) ,找出所有满足如下条件的六位数:它是一个完全平方数(即为某个整数的平方);该数同时也是回文数(即该数等于它的逆序数)。例如, 698896 是 836的平方,且是回文数,因此 698896 是满足条件的六位数。将所有上述存入 是满足条件的六位数。将所有上述存入 是满足条件的六位数。将所有满足上述条件的六位数存入x指向的数组中,函返回 指向的数组中,函返回 指向的数组中,函返回 指向的数组中,函返回 指向的数组中,函返回 x指向数组中整数的个数。
b) 编写 main 函数,声明 results 数组,调用 fun 函数将所有满足条件的 六 位数存入results 数组,并输出到屏幕。
这道题我在考试过程中本来一开始就写出来了,结果半天都没出来结果,最后才发现,判断是否为一个整数的平方时,我从1000快开始了,也就意味着 从7位数开始,所以没有出现任何结果。后来改为100到1000就成功运行并对了。当然,从317到1000也是很好的。以下是我的代码:
#include<iostream> using namespace std; int main() { int n = 0; int fun(long *); long result[100000], *p; p = result; fun(p); cout << fun(p) << endl; while (result != '\0') { cout << result << endl; n++; } return 0; } int fun(long *x) { int k = 0, j,geshu=0; int a, b, c, d, e, f; long m; for (long i = 100000; i < 999999; i++) { a = i / 100000; b = (i % 100000) / 10000; c = (i % 10000) / 1000; d = (i % 1000) / 100; e = (i % 100) / 10; f = (i % 10); m = (100000 * f + 10000 * e + 1000 * d + 100 * c + 10 * b + a); if (i == m) for(int j=100;j<1000;j++) if(i==j*j){ *x = i; x++; geshu++; } } return geshu; }
相关文章推荐
- 一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N+1
- 求出1-1000之间所有的满足如下条件的数:它的每个位上的数字的3次幂之和等于它本身,比如153。
- 给定一棵二叉树,每个结点包含一个值。打印出所有满足以下条件的路径: 路径上结点的值加起来等于给定的一个值。注意:这些路径不必从根结点开始。
- leetcode-java.T001_TwoSum 给定一个整数数组,找出其中两个数满足相加等于你指定的目标数字
- 一个整数称为完全平方数,是指它的值是另一个整数的平方。如81是个完全平方数,因为它是9的平方。请按要求完成:①在三位的正整数中寻找所有完全平方数;例如:144(12*12),676(26*26)
- (c++)一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子
- 给出一个数组 求任意个数的数相加的和等于给定数 输出所有满足条件的数
- 6-7 统计某类完全平方数(20 分) 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
- 将一个整数写成两个整数的平方和,如5=1*1+2*2。随机输入几个二位数输出满足条件的整数
- 给定一棵二叉树,每个结点包含一个值。打印出所有满足以下条件的路径: 路径上结点的值加起来等于给定的一个值。注意:这些路径不必从根结点开始。
- C++上机报告 编程序生成一张从英尺到米的转换表(1米大约等于3.28英尺),以方便工厂里工人师傅使用。输出形式如下图所示,第i行第j列的值vij代表i*10+j英尺对应的米数。每输出10英尺的转换表
- C++:求一个整数的所有因子
- 题目描述:有这样一种数,它本身是一个整数的平方,其高三位和低三位也分别是一个整数的平方,求100000到999999之间的所有三平方的数据进行求解!
- C++编写一个程序,它读入一个文件,该文件有若干行整数,统计文件中每行所有整数的平均数,并输出到屏幕上
- 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
- 找出一个整数的所有非平凡因子
- 一个整数,加上100后是一个完全平方数,再加上168后也是一个完全平数,求该数是多少。
- 获取一个整数 然后显示所有小于或等于该数的素数
- 自守数 寻找出2千万以内的所有自守数。注意,2千万的平方已经超出了整数表达的最大范围,所以该程序使用了一个巧妙的方案。
- 有一个正整数,已知它的末位数字是6,如果将这个6移动到该数的最前面,那么所得到的数是原来数的4倍,求满足条件的最小正整数。