前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【小米OJ】纯位数

【小米OJ】纯位数

作者头像
喜欢ctrl的cxk
发布2020-02-14 17:44:36
7770
发布2020-02-14 17:44:36
举报
文章被收录于专栏:Don的成长史Don的成长史

在数学中,所谓“纯位数”是指由相同位元重复而组成的自然数。比如在十进制中,1,22,333,555 都是纯位数。 很显然,15 在十进制中不是一个纯位数,但是在二进制 15(10) = 1111(2) 却是一个纯位数。

一个显然的事实是,对于正整数 N,其在 N+1 进制中必然是一个一位数,也就必然是个纯位数。

对于一个正整数 N,试找出使其成为纯位数的最小进制 K。

输入描述:

一个正整数 N (0 < N < 10^8)

输出描述:

使 N 为纯位数的最小进制 K

输入样例:

代码语言:javascript
复制
22
15

输出样例:

代码语言:javascript
复制
10
2

解题思路:

嗐 在小米OJ上分,有一点特别恶心,那就是数据都没有给定的范围。说下这题踩的坑吧我刚开始以为这题是2~16进制的转换,后来发现有个测试点是45322,预期输出是36,再比如测试点输入876569,预期输出是876548。还有一个坑就是测试点输入1。

AC代码WA代码:

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

string DecToX(ll n,ll x)  //将10进制的n转换成x进制的字符串
{
    string ans = "";
    do{
        ll t = n%x;
        n /= x;
        ans += (t>=0&&t<=9) ? t+'0' : t-10+'a';
    }while(n);
    reverse(ans.begin(),ans.end());
    return ans;
}

bool isPure(string s)   //判断是不是纯位数
{
    map<char,int> m;
    for(int i = 0; i < s.length(); i++)
    {
        m[s[i]]++;
    }
    return m.size()==1;
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    //有个测试用例没过:输入: "876569",期望输出: "876568"
    ll n;
    while(cin >> n)
    {
        for(ll i = 2; i <= n; i++) 
        {
            if(isPure(DecToX(n,i)))
            {
                cout << i << endl;
                break;
            }
        }
    }
    return 0;
}

AC代码:

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;

bool isPure(int n,int x)  //判断x进制的n是不是纯位数
{
    int t = n%x;
    while(n%x==t)
    {
        n /= x;
    }
    return n==0;   
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int n;
    while(cin >> n)
    {
        for(int i = 2; i <= n+1; i++)  //若写成i<=n,n=1时会有bug无输出
        {
            if(isPure(n,i))
            {
                cout << i << endl;
                break;
            }
        }
    }
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 输入描述:
  • 输出描述:
  • 输入样例:
  • 输出样例:
  • 解题思路:
  • AC代码WA代码:
  • AC代码:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档