zoukankan      html  css  js  c++  java
  • 136 Ugly Numbers

    题目大意

    题目原文:http://uva.onlinejudge.org/external/1/136.pdf

    因子只有2,3,5的数被称为Ugly Number。题目要求输出第1500个Ugly Number。

    判断一个数是否只有2,3,5因子,只需将这个数一直除以2,3,5知道不能整除为止。如果最后结果是1的话,那么这个数就是Ugly Number。

    但是这样的做法从1开始判断下来到第1500个数答案为八亿多,耗时20多秒才计算完成。不过题目没有测试数据,只需要最后结果,那么只需将最后结果输出就可以了。

    一下附上计算代码和AC代码:

    计算代码
     1 #include<stdio.h>
     2 int bo(int x)//判断x是不是Ugly Number,返回为1代表是,0代表不是 
     3 {
     4  while(x%2==0) 
     5  {
     6   x/=2;
     7  }
     8   while(x%3==0) 
     9  {
    10   x/=3;
    11  }
    12   while(x%5==0) 
    13  {
    14   x/=5;
    15  }
    16  if(x==1) return 1;
    17  else return 0;
    18 }
    19 int main()
    20 {
    21  long i=0,j=1;
    22  while(j<=1500)
    23  {
    24   i++;
    25   if(bo(i)==1) printf("%d %ld\n",j++,i);//从1输出到1500
    26  } 
    27  printf("The 1500'th ugly number is %ld.",i);
    28  getchar();
    29  return 0;
    30 }
    AC代码
    1 #include<stdio.h>
    2 int main()
    3 {
    4  printf("The 1500'th ugly number is 860934420.\n");
    5  return 0;   
    6 }
  • 相关阅读:
    新汉诺塔
    车的放置
    [NOI 2015]荷马史诗
    [JSOI2008]星球大战
    分组
    星空
    [Luogu4175][CTSC2008]网络管理Network
    [Luogu2617]Dynamic Rankings(整体二分)
    2018冬令营赛前停课总结
    [BZOJ2752][HAOI2012]高速公路
  • 原文地址:https://www.cnblogs.com/syiml/p/2909885.html
Copyright © 2011-2022 走看看