zhe里是目录

总结条件部分

思路分析

设置变量部分

主函数部分

完整AC代码

总结


noip2006Jam的计数法 
试题描述
Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,表示只能使用{b,c,d,e,f,g,h,i,j}这些字母。如果再规定位数为5,那么,紧接在Jam数字“bdfij”之后的数字应该是“bdghi”。(如果我们用U、V依次表示Jam数字“bdfij”与“bdghi”,则U<V,且不存在Jam数字P,使U<P<V)。你的任务是:对于从文件读入的一个Jam数字,按顺序输出紧接在后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。
输入格式
输入有2行,第1行为3个正整数,用一个空格隔开:
s t w
(其中s为所使用的最小的字母的序号,t为所使用的最大的字母的序号。w为数字的位数,这3个数满足:1≤s<t≤26, 2≤w≤t-s ) 
第2行为具有w个小写字母的字符串,为一个符合要求的Jam数字。
所给的数据都是正确的,不必验证。
输出格式
输出最多为5行,为紧接在输入的Jam数字后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。每行只输出一个Jam数字,是由w个小写字母组成的字符串,不要有多余的空格。
输入样例1
2 10 5
bdfij
输出样例1
bdghi
bdghj
bdgij
bdhij
befgh
试题来源
noip2006普及组第3题

首先是

总结条件部分

1.这玩意儿递增

2.数字是几就对应什么小写字母

3.输出后5个即可

4.jam真是个怪人

开始

思路分析

设置变量部分

先上代码加注释,然后总结

#include<bits/stdc++.h>
using namespace std;
int ss,t,w;
char s[2005];//字符串
int xb[2005];//下标

没什么好讲的

s是字符,xb是下标

就是这么简单

主函数部分

这是这个题目代码核心部分

难度也不是很大

int main(){
cin>>ss>>t>>w;//嫌慢可以用scanf
xb[w-1]=t;//最大的一个下标为t
for(int i=w-2;i>=0;i--)//倒着循环给下标赋值
xb[i]=xb[i+1]-1;//赋值
cin>>s;//输入字符串
int len=strlen(s)-1;//定一下长度,-1以后后面好写一点
int sum=5;//后面5个
while(sum--){//同上
for(int i=len;i>=0;i--){//倒着来
if(s[i]!=xb[i]+'a'-1){//一定要减去1,本人能力不够,写的时候一脸懵,改完以后才过,此行之意为下标和实际不符
s[i]++;//往后顺延一个
for(int j=i+1;j<=len;j++)
s[j]=s[j-1]+1;//递增
for(int i=0;i<=len;i++)
cout<<s[i];//输出
cout<<endl;//换行
break;
}
}
}
return 0;
}

我认为注释已经十分详细的描写了各行的意义,所以这里我就缕缕思路

1.为什么要倒着赋值下标

高情商 :好写

低情商:写错了以后改的,我也不知道qwq

好吧,其实是因为xb[w-1]已经有过值了,所以从后面开始设

2.为什么if那里要减一

如果不减一

调试的效果如下图

与样例相比较

可以看到

后三位不太对劲

有的多一有的少一

十分魔幻

所以我们就减一

就非常舒服

完整AC代码

#include<bits/stdc++.h>
using namespace std;
int ss,t,w;
char s[2005];
int xb[2005];
int main(){
cin>>ss>>t>>w;
xb[w-1]=t;
for(int i=w-2;i>=0;i--)
xb[i]=xb[i+1]-1;
cin>>s;
int len=strlen(s)-1;
int sum=5;
while(sum--){
for(int i=len;i>=0;i--){
if(s[i]!=xb[i]+'a'-1){
s[i]++;
for(int j=i+1;j<=len;j++)
s[j]=s[j-1]+1;
for(int i=0;i<=len;i++)
cout<<s[i];
cout<<endl;
break;
}
}
}
return 0;
}

总结

这道题的难度还是不大的

ps.对@forever_piano表达由衷的敬意,助力我完成了这篇题解,完善了自己的代码(其实就是抄人家的)

noip2006Jam的计数法(从头到尾逐行解析)!!!相关推荐

  1. java导出excel 科学计数法_基于Java将Excel科学计数法解析成数字

    需要注意的是一般的科学表达式是 1.8E12 1.8E-12 而在Excel中的科学表达式是 1.8E+12 1.8E-12 我写的科学计数法的正则表达式是 (-?\d+\.?\d*)[Ee]{1}[ ...

  2. 1024 科学计数法 (20 分) 完全解析(C++详细思路)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...

  3. JAVA使用poi解析execl解决数值被转为科学计数法(如:手机号、身份证号、电话、等)解决方法

    1.原由 大家都知道数字在EXCEL表格中存储时有两种表现形式.1.数字作为数值存储.当数字作为数值存储时,单元格中的数字可以参与数学运算.2.数字作为文本存储.当数字作为文本存储时,单元格中的数值不 ...

  4. 从头到尾彻底解析Hash表算法

    从头到尾彻底解析Hash表算法 发布时间: 2013-10-02 10:26  阅读: 25156 次  推荐: 14   原文链接   [收藏]   作者:July.wuliming.pkuoliv ...

  5. 生成csv文件打开列变成科学计数法

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据,不包含二进制数据,是一种字符数据. csv文件生成 ...

  6. Java 科学计数法

    目录 Java 科学计数法 1 科学计数法的概念 1.1 有效数字 1.2 E记号 2 Java中的科学计数法 2.1 NumberFormat 2.2 DecimalFormat 2.3 BigDe ...

  7. python中科学计数法怎么表示_python科学计数法转换

    python 输出数字,如何不以科学计数法输出? 概述利用numpy设置输出选项即可 代码解析 未使用numpy设置: import time # time 时间类 print(time*time*1 ...

  8. 计算机科学计数法的定义,科学计数法的定义和运算规则

    一.科学计数法的定义和运算规则 1.定义 把一个数写成 $a \times 10^n$ 的形式(其中 $1 \leq \left\vert a \right\vert < 10$,n 是正整数) ...

  9. java excel 电话号码_java使用poi读取excel时,电话号码变成了科学计数法,整数变成double,怎么改过来...

    为了防止数字变成科学计数法方式表示,在源文件以及java代码中都用文的方式去生成和解回析excel,具体答如下: 生成Excel时,设置单元格格式为STRING,即: //关键代码 HSSFCell  ...

最新文章

  1. LeetCode简单题之构造矩形
  2. windows下mysql开启慢查询
  3. B - The Suspects POJ - 1611
  4. 官方资源帖!手把手教你在TensorFlow 2.0中实现CycleGAN,推特上百赞
  5. Ugly Pairs
  6. python和halcon_VisionPro和Halcon的详细对比
  7. jQuery Ajax实现下拉框无刷新联动
  8. 资深Linux 系统管理员常用的15个很好用的Cron工作示例
  9. JS 一张图理解prototype、proto和constructor的关系
  10. Apollo 对表名区分大小写 如何配置MYSQL不区分大小写呢
  11. string 找出所有数字 index_【一天一大 lee】单调递增的数字 (难度:中等) Day20201215...
  12. ZBrush软件特性之Color调控板
  13. php中的try语句,PHP Try-catch 语句使用技巧
  14. python基础总结:1.6、流程控制
  15. Java 多线程设计模式
  16. 简述什么是“零信任”
  17. UWB测距原理详细解答
  18. 使用计算机研究生命科学的文章,现代若干科学前沿的计算主义哲学蕴意.doc
  19. MDWechat(微信美化)免费
  20. pyecharts绘制省级地图(Map地图、Geo动态涟漪散点图、Geo动态轨迹图)

热门文章

  1. 学术论文写作注意事项
  2. 全面解析 2008下半年家具业五大朝阳产品(组图)
  3. 使用Dism++和360安全卫士搞定Windows10离线升级
  4. 地税申报提示服务器证书不合法,为什么地税网上申报打不开申报表且提示网页上有错误...
  5. 林业病虫害数据集和数据预处理方法介绍
  6. 各种各样的分布函数-t分布,F分布
  7. Kimball多维体系结构中的三个关键性概念
  8. 域名注册与备案(阿里云)
  9. CSS 图片过渡和转换动画
  10. Linux下控制打印机笔记