美丽数

来源:互联网 发布:中原工学院软件类专业 编辑:程序博客网 时间:2024/04/29 20:45

问题 F : 美丽数

时间限制:1 秒
内存限制:32 兆
特殊判题: 
提交:16
解决: 2

题目描述

小明很喜欢3和5这两个数字,他将能被3或5整除的数叫做美丽数。现在给你一个整数N(1<=N<=100000),你能告诉小明第N个美丽数是多少吗?

输入格式

输入包含多组测试数据。每组输入一个整数N(1<=N<=100000)。

输出

对于每组输入,输出第N个美丽数。

样例输入

1
2
3
4

样例输出

3
5
6
9

 

 

想法:

这个题我做了其实不久,因为发现这个规律真的非常意外,我发现自从第三个数之后就有一个规律那就是差值是有规律的,3,1,2,3,3,2,1,把前30个数写出来就发现了

代码如下:

#include<iostream>#include<cstdio>using namespace std;int a[500]={3,5,6,9,10,12,15,18,20,21,24,25,27,30,33,35,36,39,40,42,45,48,50,51,54,55,57,60,63,65,66,69,70,72,75,78,80,81,84,85,87,90,93,95,96,99,100,102,105,108,110,111,114,115,117,120,123,125,126,129,130,132,135,138,140,141,144,145,147,150,153,155,156,159,160,162,165,168,170,171,174,175,177,180,183,185,186,189,190,192,195,198,200,201,204,205,207,210,213,215,216,219,220,222,225,228,230,231,234,235,237,240,243,245,246,249,250,252,255,258,260,261,264,265,267,270,273,275,276,279,280,282,285,288,290,291,294,295,297,300,303,305,306,309,310,312,315,318,320,321,324,325,327,330,333,335,336,339,340,342,345,348,350,351,354,355,357,360,363,365,366,369,370,372,375,378,380,381,384,385,387,390,393,395,396,399,400,402,405,408,410,411,414,415,417,420,423,425,426,429,430,432,435,438,440,441,444,445,447,450,453,455,456,459,460,462,465,468,470,471,474,475,477,480,483,485,486,489,490,492,495,498,500,501,504,505,507,510,513,515,516,519,520,522,525,528,530,531,534,535,537,540,543,545,546,549,550,552,555,558,560,561,564,565,567,570,573,575,576,579,580,582,585,588,590,591,594,595,597,600,603,605,606,609,610,612,615,618,620,621,624,625,627,630,633,635,636,639,640,642,645,648,650,651,654,655,657,660,663,665,666,669,670,672,675,678,680,681,684,685,687,690,693,695,696,699,700,702,705,708,710,711,714,715,717,720,723,725,726,729,730,732,735,738,740,741,744,745,747,750,753,755,756,759,760,762,765,768,770,771,774,775,777,780,783,785,786,789,790,792,795,798,800,801,804,805,807,810,813,815,816,819,820,822,825,828,830,831,834,835,837,840,843,845,846,849,850,852,855,858,860,861,864,865,867,870,873,875,876,879,880,882,885,888,890,891,894,895,897,900,903,905,906,909,910,912,915,918,920,921,924,925,927,930,933,935,936,939,940,942,945,948,950,951,954,955,957,960,963,965,966,969,970,972,975,978,980,981,984,985,987,990,993,995,996,999,1000};int main(){   int i,j,k,t;   int n;   int l,s;   int b[7]={3,1,2,3,3,2,1};   int sum=15;    while(scanf("%d",&n)!=EOF)   {       if(n<=467)       {           printf("%d\n",a[n-1]);       }       else       {      if((n-3)%7==0)      {      l=(n-3)/7*sum+6;      cout<<l<<endl;      }      else      {       t=(n-3)/7;       k=t*sum+6;       i=n-t*7-3;       s=0;       for(j=0;j<i;j++)       s=s+b[j];       l=k+s;       printf("%d\n",l);       }       }   }  return 0;}