2016SDAU编程练习三1004
来源:互联网 发布:mac美服lol加速器 编辑:程序博客网 时间:2024/05/01 03:55
Problem D
Problem DescriptionA number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers. <br><br>Write a program to find and print the nth element in this sequence<br>
InputThe input consists of one or more test cases. Each test case consists of one integer n with 1 <= n <= 5842. Input is terminated by a value of zero (0) for n.<br>
OutputFor each test case, print one line saying "The nth humble number is number.". Depending on the value of n, the correct suffix "st", "nd", "rd", or "th" for the ordinal number nth has to be used like it is shown in the sample output.<br>
Sample Input1
2
3
4
11
12
13
21
22
23
100
1000
5842
0
Sample OutputThe 1st humble number is 1.
The 2nd humble number is 2.
The 3rd humble number is 3.
The 4th humble number is 4.
The 11th humble number is 12.
The 12th humble number is 14.
The 13th humble number is 15.
The 21st humble number is 28.
The 22nd humble number is 30.
The 23rd humble number is 32.
The 100th humble number is 450.
The 1000th humble number is 385875.
The 5842nd humble number is 2000000000.
题意:从小到大输出因子只有2 3 5 7的数
思路:其实就是输出一个数*2 *3 *7和*5
感想:比较简单的一个题
AC代码:
#include<cmath>
#include<string.h>
#include<stdio.h>
using namespace std;
int main()
{
// freopen("r.txt","r",stdin);
long long int arr[6666];
arr[1]=1;
int a,b,c,d;
a=b=c=d=1;
int i;
for(i=2;i<5844;i++)
{
arr[i]=min(arr[a]*2,min(arr[b]*3,min(arr[c]*5,arr[d]*7)));
//cout<<arr[i]<<endl;
if(arr[i]==arr[a]*2)
a++;
if(arr[i]==arr[b]*3)
b++;
if(arr[i]==arr[c]*5)
c++;
if(arr[i]==arr[d]*7)
d++;
}
//cout<<arr[5200]<<endl;
int n;
while(~scanf("%d",&n))
{
if(n==0) break;
cout<<"The "<<n;
if(n%10==1&&n%100!=11)
cout<<"st humble number is ";
else if(n%10==2&&n%100!=12)
cout<<"nd humble number is ";
else if(n%10==3&&n%100!=13)
cout<<"rd humble number is ";
else
cout<<"th humble number is ";
cout<<arr[n]<<"."<<endl;
}
}
- 2016SDAU编程练习三1004
- 2016SDAU编程练习三1001
- 2016SDAU编程练习三1002
- 2016SDAU编程练习三1006
- 2016SDAU编程练习三1010
- 2016SDAU编程练习三1011
- 2016SDAU编程练习三1012
- 2016SDAU编程练习三1013
- 2016SDAU编程练习三1014
- 2016SDAU编程练习三1015
- 2016SDAU编程练习三1016
- 2016SDAU编程练习三1017
- 2016SDAU编程练习三1018
- 2016SDAU编程练习三1023
- 2016SDAU编程练习三1007
- SDAU练习三1004
- 2016SDAU课程练习三1004
- 2016sdau课程练习专题三 1004
- 数列的收敛
- 高频面试题之三种方法实现两个栈实现一个队列
- Storm 理论基础
- 三层架构(3-tier architecture)
- 第9周项目3- 数不定的工资类(复制构造函数)
- 2016SDAU编程练习三1004
- 第六届河南省程序设计大赛
- jquery
- Fastjson内幕
- iOS开发真机调试证书导出.p12文件
- 数据结构—二叉树后序遍历求逆
- 网站的轮播图的获取
- Android线程的创建、开启、休眠、中断
- 第十四周项目 3 数组类模板