早教吧作业答案频道 -->其他-->
1系统的基本功能所谓丑数,是指因子只含2,3,5的数。编写一个程序,求第1500个只有2,3,5因子的数。2要求及提示数是从小到大排列的,第一个数是1,1=20*30*50。2.1程序执行过程本题目不
题目详情
1 系统的基本功能 所谓丑数,是指因子只含2,3,5的数。编写一个程序,求第1500个只有2,3,5因子的数。
2 要求及提示
数是从小到大排列的,第一个数是1,1 = 20 * 30 * 50。
2.1 程序执行过程
本题目不需要从键盘读入数据。结果输出时,为便于观察,要求以连乘的形式打印到屏幕上,格式如下(假设,x为找到的数,a、b、c为2、3、5的个数):
\x09\x09The 1500th number is x.
x = 2^a * 3^b * 5^c
2.2 算法要求及提示
(1)本题描述的实际上是一个数列,这个数列如下:
\x09\x091,2,3,4,5,6,8,9,10……
\x09\x091 = 20 * 30 * 50 2 = 21 * 30 * 50 3 = 20 * 31 * 50
4 = 22 * 30 * 50 5 = 20 * 30 * 51 6 = 21 * 31 * 50
\x09\x098 = 23 * 30 * 50 9 = 20 * 32 * 50 10 = 21 * 30 * 51
\x09\x09。。。。。。
\x09\x09题目要求的是该数列的第1500项。
(2)求解该问题时,比较有效的一个方法是,设一个变量n,和一个计数器count,count初始值为0。n从1开始,判断n的质因数是不是只有2、3和5。如果是说明n是数列中的数,count = count + 1;否则不是。然后n = n + 1,再重新判断,直至count = 1500。
用C++求
2 要求及提示
数是从小到大排列的,第一个数是1,1 = 20 * 30 * 50。
2.1 程序执行过程
本题目不需要从键盘读入数据。结果输出时,为便于观察,要求以连乘的形式打印到屏幕上,格式如下(假设,x为找到的数,a、b、c为2、3、5的个数):
\x09\x09The 1500th number is x.
x = 2^a * 3^b * 5^c
2.2 算法要求及提示
(1)本题描述的实际上是一个数列,这个数列如下:
\x09\x091,2,3,4,5,6,8,9,10……
\x09\x091 = 20 * 30 * 50 2 = 21 * 30 * 50 3 = 20 * 31 * 50
4 = 22 * 30 * 50 5 = 20 * 30 * 51 6 = 21 * 31 * 50
\x09\x098 = 23 * 30 * 50 9 = 20 * 32 * 50 10 = 21 * 30 * 51
\x09\x09。。。。。。
\x09\x09题目要求的是该数列的第1500项。
(2)求解该问题时,比较有效的一个方法是,设一个变量n,和一个计数器count,count初始值为0。n从1开始,判断n的质因数是不是只有2、3和5。如果是说明n是数列中的数,count = count + 1;否则不是。然后n = n + 1,再重新判断,直至count = 1500。
用C++求
▼优质解答
答案和解析
#include
#include
int main()
{
int count = 0;
int num = 2*3*5;
int i=0,j=0,k=0;
while(count < 1500) {
int tmp = num++;
i=0,j=0,k=0;
if(tmp % (2*3*5)) {
continue;
}
while(!(tmp % 2)) {
i ++;
tmp = tmp /2;
}
while(!(tmp % 3)) {
j ++;
tmp = tmp /3;
}
while(!(tmp % 5)) {
k ++;
tmp = tmp /5;
}
count ++;
//printf("The %dth number is x. x=2^%d*3^%d*5^%d\n", count, i, j, k);
}
printf("The %dth number is x. x=2^%d*3^%d*5^%d\n", count, i, j, k);
return 0;
}
c版本,改成c++很容易。
#include
int main()
{
int count = 0;
int num = 2*3*5;
int i=0,j=0,k=0;
while(count < 1500) {
int tmp = num++;
i=0,j=0,k=0;
if(tmp % (2*3*5)) {
continue;
}
while(!(tmp % 2)) {
i ++;
tmp = tmp /2;
}
while(!(tmp % 3)) {
j ++;
tmp = tmp /3;
}
while(!(tmp % 5)) {
k ++;
tmp = tmp /5;
}
count ++;
//printf("The %dth number is x. x=2^%d*3^%d*5^%d\n", count, i, j, k);
}
printf("The %dth number is x. x=2^%d*3^%d*5^%d\n", count, i, j, k);
return 0;
}
c版本,改成c++很容易。
看了 1系统的基本功能所谓丑数,是...的网友还看了以下:
已知三角形的面积为S,一条边长为a,这条边上的高为h。(1)如果面积不变,那么h与a之间的函数关系 2020-05-13 …
如图,今有网球从斜坡OA的点O处抛出.网球的抛物路线的函数关系是y=4x-1/2x^2,斜坡的函数 2020-06-04 …
求物理实验帝解俩不确定度的大学物理习题!1.已知间接测量量F与直接测量量x、y、z的函数关系是:F 2020-06-20 …
下列关系中,能构成x为自变量,y为因变量的函数关系是Ay=√-xBy=lg(-x^2)Cy^2=2 2020-08-01 …
1.证明函数y=x+1/x在(0,1)上为减函数2.已知y=-log2(x2-ax-a)在区间(- 2020-08-01 …
找出三个角上的数与中间的数的倍数关系是这样的.有4个三角形.每个三角形的3个角上都有数字,中间也有数 2020-11-20 …
最大公约数和最小公倍数关系是什么?帮我解答一下下面的疑惑(我举了个简单的例子)50和25,除以共有的 2020-11-24 …
下列结论正确的是()①函数关系是一种确定性关系;②相关关系是一种非确定性关系;③回归分析是对具有函数 2020-12-07 …
直线y=-2分之1x+2与x轴y轴分别交于A,B两点,D是x上一点,坐标为(x,0),△ABD的面积 2021-01-10 …
转数关系是不是甲的转数是乙的2倍那么甲的角速度是乙的2倍? 2021-01-22 …