iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0
自我挑戰組

cpe30天練習系列 第 28

cpe練習day28

  • 分享至 

  • xImage
  •  

今天是練習cpe的Divide, But Not Quite Conquer!題目

程式碼

#include <bits/stdc++.h>
using namespace std;

int main() 
{
    int n, m;
    while (cin >> n >> m) 
	{
        if (n == 0 || m == 0) 
		{
            cout << "Boring!" << endl;;
            continue; 
        }

        int tmp = n;
        bool boring = false;

        while (tmp > 1) 
		{
            if (tmp % m == 0) 
			{
                tmp /= m;
            } else 
			{
                boring = true;
                break;
            }
        }

        if (boring) 
		{
            cout << "Boring!" <<endl;
        } 
		else 
		{
            cout << n;
            while (n > 1) 
			{
                n /= m;
                cout << " " << n;
            }
            cout << endl;
        }
    }
    return 0;
}

解題方向

while (tmp > 1) 
{
    if (tmp % m == 0) 
    {
        tmp /= m;
    } 
    else 
    {
        boring = true;
        break;
    }
}
  • 不斷將tmp除以m。只要能整除,就繼續。否則就表示「不能一直整除到底」,所以把boring設成true跳出迴圈
cout << n;
    while (n > 1) 
    {
        n /= m;
        cout << " " << n;
    }
  • 先印出起始數n。每次將n除以m。每次印出結果直到n == 1。

上一篇
cpe練習day27
系列文
cpe30天練習28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言