#20826: 直接除


yes51851823@gmail.com (wseds)

學校 : 國立花蓮高級工業職業學校
編號 : 108813
來源 : [36.227.245.149]
最後登入時間 :
2024-04-16 01:11:16
d129. 00136 - Ugly Numbers -- UVa136 | From: [114.44.208.79] | 發表日期 : 2020-03-09 22:43

可以用一個變數紀錄目前Ugly Number總共出現幾次,出現過1500次Ugly Number就可以輸出答案了。

因為因數分解後只能有2、3、5,所以對每一個數字的檢查方式我是將它先除以2直到發現除以2會有餘數就除以3,再算到除以3有餘數就換5,再算到除以5有餘數就可以檢查它是不是Ugly Number了,如果經過前面的處理後它變成1就表示它是Ugly Number,就可以把出現的次數+1。

 
#30214: Re: 直接除


s111010137@student.nqu.edu.tw (Khazix)

學校 : 國立金門大學
編號 : 177202
來源 : [1.172.139.67]
最後登入時間 :
2022-11-09 22:20:56
d129. 00136 - Ugly Numbers -- UVa136 | From: [110.26.96.224] | 發表日期 : 2022-05-07 16:05

可以用一個變數紀錄目前Ugly Number總共出現幾次,出現過1500次Ugly Number就可以輸出答案了。

因為因數分解後只能有2、3、5,所以對每一個數字的檢查方式我是將它先除以2直到發現除以2會有餘數就除以3,再算到除以3有餘數就換5,再算到除以5有餘數就可以檢查它是不是Ugly Number了,如果經過前面的處理後它變成1就表示它是Ugly Number,就可以把出現的次數

#include<iostream>
#include<cmath>
using namespace std;
int main(void)
{
    cin.tie(0);
    std::ios::sync_with_stdio(false);

    int n = 0;
    int answer = 1;
    int temp;

    while (n <= 1500)
    {
        temp = answer;

        while (temp % 2 == 0)
        {
            temp /= 2;
        }

        while (temp % 3 == 0)
        {
            temp /= 3;
        }

        while (temp % 5 == 0)
        {
            temp /= 5;
        }

        if (temp == 1)
        {
            n++;

            if (n == 1500)
            {
                break;
            }
        }

        answer++;
    }

    cout << "The 1500'th ugly number is " << answer << '\n';

    return 0;
}

結果出現WA

是TLE嗎?

 
#30216: Re: 直接除


s111010137@student.nqu.edu.tw (Khazix)

學校 : 國立金門大學
編號 : 177202
來源 : [1.172.139.67]
最後登入時間 :
2022-11-09 22:20:56
d129. 00136 - Ugly Numbers -- UVa136 | From: [110.26.96.224] | 發表日期 : 2022-05-07 17:02

.

.

.

.

.

.

結果是輸出格式不對 笑死

 
#30843: Re: 直接除


c110152309@nkust.edu.tw (9527)

學校 : 不指定學校
編號 : 183093
來源 : [61.227.31.162]
最後登入時間 :
2022-06-16 03:46:02
d129. 00136 - Ugly Numbers -- UVa136 | From: [61.227.31.162] | 發表日期 : 2022-06-15 20:17

可以用一個變數紀錄目前Ugly Number總共出現幾次,出現過1500次Ugly Number就可以輸出答案了。

因為因數分解後只能有2、3、5,所以對每一個數字的檢查方式我是將它先除以2直到發現除以2會有餘數就除以3,再算到除以3有餘數就換5,再算到除以5有餘數就可以檢查它是不是Ugly Number了,如果經過前面的處理後它變成1就表示它是Ugly Number,就可以把出現的次數+1。


那題目中的14呢?

 
#30844: Re: 直接除


c110152309@nkust.edu.tw (9527)

學校 : 不指定學校
編號 : 183093
來源 : [61.227.31.162]
最後登入時間 :
2022-06-16 03:46:02
d129. 00136 - Ugly Numbers -- UVa136 | From: [61.227.31.162] | 發表日期 : 2022-06-15 20:27

可以用一個變數紀錄目前Ugly Number總共出現幾次,出現過1500次Ugly Number就可以輸出答案了。

因為因數分解後只能有2、3、5,所以對每一個數字的檢查方式我是將它先除以2直到發現除以2會有餘數就除以3,再算到除以3有餘數就換5,再算到除以5有餘數就可以檢查它是不是Ugly Number了,如果經過前面的處理後它變成1就表示它是Ugly Number,就可以把出現的次數+1。


那題目中的14呢?


抱歉看錯==

 
ZeroJudge Forum