L1-1. 出生年【STL放的位置】

news/2024/7/3 3:39:44

L1-1. 出生年

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越

以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。

输入格式:

输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。

输出格式:

根据输入,输出x和能达到要求的年份。数字间以1个空格分隔,行首尾不得有多余空格。年份要按4位输出。注意:所谓“n个数字都不相同”是指不同的数字正好是n个。如“2013”被视为满足“4位数字都不同”的条件,但不被视为满足2位或3位数字不同的条件。

输入样例1:
1988 4
输出样例1:
25 2013
输入样例2:
1 2
输出样例2:
0 0001

 

【分析】:要是set没有clear或者没把set定义在每次循环内部就会出错,这个错误还蛮困扰并且隐蔽的,不过也怪我使用STL的时候没有仔细分析哪里应该clear的习惯,真的细节决定成败,题目不难,用set去重计数,当size和n吻合即可。

【代码】:

#include <bits/stdc++.h>

using namespace std;
int main()
{
    int x,y,n,ans;
    cin>>y>>n;
    set<int> s;
    for(int i=y; ;i++){
        s.clear();//要么clear要么直接把set定义在这里!
        int x=i;
        while(x){
          s.insert(x%10);
          x/=10;
      }
      if(s.size()==n){
          ans=i;
          break;
      }
    }
    printf("%d %04d\n",ans-y,ans);
}

 

转载于:https://www.cnblogs.com/Roni-i/p/8665416.html


http://www.niftyadmin.cn/n/4558095.html

相关文章

求fibonacci数列(递归+非递归)

a和b分别代表当前项前面的第2项和第1项 ab1; //给a和b赋初值1 if(n1||n2) return 1; else for(int i3;i<n;i){ cab; //求出当前项 ab;//把前面第1项赋给前面第2项 bc;//把当前项赋给前面第1项 } return c;//返回所求的第n项 } b i);ij;jk;n;}} 输入一个数n 求前n个fibonacci…

包含图片的form表单提交方法提交方式为ajax(不需要转成base64码)

进行上传之前需要用maven导包 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version></dependency>然后在spring-mvc.xml中添加配置文件 <…

[倍增][最短路-Floyd][dp]

题目描述 小A的工作不仅繁琐&#xff0c;更有苛刻的规定&#xff0c;要求小A每天早上在6&#xff1a;00之前到达公司&#xff0c;否则这个月工资清零。可是小A偏偏又有赖床的坏毛病。于是为了保住自己的工资&#xff0c;小A买了一个十分牛B的空间跑路器&#xff0c;每秒钟可以跑…

c#怎样打包 可以使另一个程序随开机自动启动

C#编的程序用微软的VS有发布功能 就相当于JAVA里的JAR打包发布 这样 就变EXE文件了

双击CAD对象(具有扩展数据),显示自定义对话框实现方法

转自&#xff1a;Cad人生 链接&#xff1a;http://www.cnblogs.com/cadlife/p/3463337.html 题目&#xff1a;双击CAD对象&#xff0c;显示自定义对话框实现方法 内容粘贴如下&#xff1a; 主要是绑定两个事件&#xff1a;一个是 Application.DocumentManager.DocumentLockMode…

405

get和post用反的话 没有按照服务端要求的请求格式

分别用顺序交换法和选择顺序法和 按由小到大输出 如何用C写一段程序:任意输入10个数

自己试着做吧 都可以 还有交换排序 选择排序 不会了可以再找我 num[i]);}for(i8;i>0;i--){ for(j9;j>9-i;j--){ if(num[j]<num[j-1]) { tnum[j]; num[j]num[j-1]; num[j-1]t; }}for(i0;i<10;i){ printf("%d/t" num[10];int t;for(i0;i<10;i){ scanf(&…

bzoj1572 [Usaco2009 Open]工作安排Job

[Usaco2009 Open]工作安排Job Time Limit: 10 Sec Memory Limit: 64 MB Description Farmer John 有太多的工作要做啊&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;为了让农场高效运转&#xff0c;他必须靠他的工作赚钱&…