noip2006Jam的计数法(从头到尾逐行解析)!!!
zhe里是目录
总结条件部分
思路分析
设置变量部分
主函数部分
完整AC代码
总结
noip2006Jam的计数法 |
|
首先是
总结条件部分
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的计数法(从头到尾逐行解析)!!!相关推荐
- java导出excel 科学计数法_基于Java将Excel科学计数法解析成数字
需要注意的是一般的科学表达式是 1.8E12 1.8E-12 而在Excel中的科学表达式是 1.8E+12 1.8E-12 我写的科学计数法的正则表达式是 (-?\d+\.?\d*)[Ee]{1}[ ...
- 1024 科学计数法 (20 分) 完全解析(C++详细思路)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...
- JAVA使用poi解析execl解决数值被转为科学计数法(如:手机号、身份证号、电话、等)解决方法
1.原由 大家都知道数字在EXCEL表格中存储时有两种表现形式.1.数字作为数值存储.当数字作为数值存储时,单元格中的数字可以参与数学运算.2.数字作为文本存储.当数字作为文本存储时,单元格中的数值不 ...
- 从头到尾彻底解析Hash表算法
从头到尾彻底解析Hash表算法 发布时间: 2013-10-02 10:26 阅读: 25156 次 推荐: 14 原文链接 [收藏] 作者:July.wuliming.pkuoliv ...
- 生成csv文件打开列变成科学计数法
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据,不包含二进制数据,是一种字符数据. csv文件生成 ...
- Java 科学计数法
目录 Java 科学计数法 1 科学计数法的概念 1.1 有效数字 1.2 E记号 2 Java中的科学计数法 2.1 NumberFormat 2.2 DecimalFormat 2.3 BigDe ...
- python中科学计数法怎么表示_python科学计数法转换
python 输出数字,如何不以科学计数法输出? 概述利用numpy设置输出选项即可 代码解析 未使用numpy设置: import time # time 时间类 print(time*time*1 ...
- 计算机科学计数法的定义,科学计数法的定义和运算规则
一.科学计数法的定义和运算规则 1.定义 把一个数写成 $a \times 10^n$ 的形式(其中 $1 \leq \left\vert a \right\vert < 10$,n 是正整数) ...
- java excel 电话号码_java使用poi读取excel时,电话号码变成了科学计数法,整数变成double,怎么改过来...
为了防止数字变成科学计数法方式表示,在源文件以及java代码中都用文的方式去生成和解回析excel,具体答如下: 生成Excel时,设置单元格格式为STRING,即: //关键代码 HSSFCell ...
最新文章
- LeetCode简单题之构造矩形
- windows下mysql开启慢查询
- B - The Suspects POJ - 1611
- 官方资源帖!手把手教你在TensorFlow 2.0中实现CycleGAN,推特上百赞
- Ugly Pairs
- python和halcon_VisionPro和Halcon的详细对比
- jQuery Ajax实现下拉框无刷新联动
- 资深Linux 系统管理员常用的15个很好用的Cron工作示例
- JS 一张图理解prototype、proto和constructor的关系
- Apollo 对表名区分大小写 如何配置MYSQL不区分大小写呢
- string 找出所有数字 index_【一天一大 lee】单调递增的数字 (难度:中等) Day20201215...
- ZBrush软件特性之Color调控板
- php中的try语句,PHP Try-catch 语句使用技巧
- python基础总结:1.6、流程控制
- Java 多线程设计模式
- 简述什么是“零信任”
- UWB测距原理详细解答
- 使用计算机研究生命科学的文章,现代若干科学前沿的计算主义哲学蕴意.doc
- MDWechat(微信美化)免费
- pyecharts绘制省级地图(Map地图、Geo动态涟漪散点图、Geo动态轨迹图)