标题:两道题,希望大神解答
只看楼主
yh3163
Rank: 2
来 自:虹口区
等 级:论坛游民
帖 子:102
专家分:50
注 册:2022-1-27
结帖率:93.75%
 问题点数:0 回复次数:1 
两道题,希望大神解答
1,汽车牌照
小 Y 最近发现街上的汽车越来越多了,作为汽车的重要标志——汽车牌照也是越来越不够用了,已经从以前的十进制发展到三十六进制了,以前的一个汽车牌照“苏 D88888”,现在的牌照“苏 D0YY11”。
小 Y 突发其想,想知道他看到的大量汽车牌照中最近的两个汽车牌照相差多少?

2,数列
给定一个正整数 k,把所有 k 的方幂及所有有限个互不相等的 k 的方幂之和构成一个递增的序列。例如,当 k=3 时,这个序列是:1,3,4,9,10,12,13,…
请求出这个序列的第 n 项的值(用十进制数表示)
搜索更多相关主题的帖子:  汽车 序列 十进制 相等 
2022-06-18 19:29
yh3163
Rank: 2
来 自:虹口区
等 级:论坛游民
帖 子:102
专家分:50
注 册:2022-1-27
得分:0 
已获得源代码,帮忙写下注释,谢谢
数列:
#include<cstdio>
#include<cstdlib>
#include<iostream>
int a[1000];
using namespace std;
int main(){
    int k,n,i=0;
    freopen("sequence.in","r",stdin);
    freopen("sequence.out","w",stdout);
    cin>>k>>n;
    do{
        a[++i]=n%2;
        n/=2;
    }
    while(n!=0);
    int x=1;
    int ans=a[1];
    for(int j=2;j<=i;j++){
        x*=k;
        ans+=a[j]*x;
    }
    cout<<ans<<endl;
    return 0;
}
车牌:
#include<bits/stdc++.h>
using namespace std;
int a[500000];
int main(){
    freopen("license.in","r",stdin);
    freopen("license.out","w",stdout);
    string str;
    int n=0;
    while(getline(cin,str)){//while(scanf("%s",str.c_str()!=EOF) {
        int t=0;
        for(int j=2;j<7;j++){
            if(str[j]>57) t=t*36+str[j]-55;
            else t=t*36+str[j]-48;
        }
        a[n++]=t;
    }
    n--;
    sort(a,a+n);
    int ans=a[1]-a[0];
    for(int i=2;i<n;i++)
     if(a[i]-a[i-1]<ans) ans=a[i]-a[i-1];
    cout<<ans<<endl;
    return 0;
}
2022-06-19 16:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509376-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049303 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved