题目:https://www.rqnoj.cn/problem/3

非递归做法:(严格递增 单调大于 不可等于  )

做法:循环体

<1>操作字符串 str 从后往前找,k=1,如果s[w-k]!=t+'a'即最后一个元素存在后继,则将最后一个字母+1,得到一个新字符串

如果s[w-k]==t+'a' 则将k++,t--继续这个循环 直到找到新的字符串 或者w-k<0

<2>输出新字符串的值str 并将k t值还原

问题思路: 1、假设一开始的字符串为s

2、经过一系列操作(一段代码K),找到了s的下一个字符串s1

3、然后将s1赋给s,并还原初始条件

2、s(值为s1) 又经过一系列操作(代码K),找到了s(值为s1)的下一个字符串s2

3、然后将s2赋给s,并还原初始条件

循环2,3

# include<iostream>
using namespace std;
int main()
{char str[30];int s,t,w,k=1,flag=0,i,j=5;cin>>s>>t>>w>>str;int n = t;while(j>0){if(str[w-k]!='a'+t-1)   //功能:寻找一个新的字符串 //属于操作2{str[w-k] = str[w-k]+1;for(i=w-k+1;i<w;i++){str[i] = str[i-1]+1;}flag=0; //找到新的字符串才能输出}else                                     //属于操作2{k++;  //找不到就往前找一位t--;  //改变后继判断的值即 t-1+'a'的值flag=1;  //此时仍属于在寻找新字符串的过程 不输出if(w-k<0) //提前终止的判断{break;}}if(flag==0)                              //属于操作3{cout<<str<<endl; //输出新找到的字符串k=1; //将k,t值还原,即还原初始条件 将新字符串看作t=n;flag=1; //为了避免没再次找到新字符串 就输出j--;}}return 0;
} 

递归做法:

转载于:https://www.cnblogs.com/wshyj/p/6349874.html

RNQOJ Jam的计数法相关推荐

  1. 洛谷P1061 Jam的计数法 数学

    洛谷P1061 Jam的计数法 数学  已知一个字符串 其 均有 s--t构成 且字符串要求 s[ i ]<s[ j ] i < j 已知一个字符串 求按字典序排列 的后5个字符串 1. ...

  2. SDNU 1176.Jam的计数法(思维)

    Description Jam不使用阿拉伯数字计数,而是使用小写英文字母计数.他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母.我 ...

  3. 洛谷P1061 Jam的计数法

    题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字 ...

  4. Jam的计数法--Java

    题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小 写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文 ...

  5. 【NOIP2006 普及组】T3 Jam 的计数法 题解

    题目传送门 题目描述 Jam 是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩. 在他的计数法中,每个数字的位数都是相同的(使用相同个数 ...

  6. C++题解:【NOIP2006PJ】Jam的计数法(count)

    题目链接 题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母 ...

  7. Jam的计数法 题解

    JamJamJam的计数法 题解 题目 题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数 ...

  8. P1061 [NOIP2006 普及组] Jam 的计数法

    解题思路:对于每一个字符串,判断第n-1个位置能不能放,如果不能再去前面找,如果可以,就把从当前位置开始,所有的值都往后加一位.这里我用一个map维护数字与字符之间的映射,方便查找.发现规律:倒数第i ...

  9. java中jam_Jam的计数法 (Java代码)

    题目介绍: 其实这个题猛的一读起来是没有什么头绪的,什么是Jam的计数法?前提是知道什么是Jam数,Jam数其实就是几个字符组成的一个字符串,但是这个字符串中的字符遵循严格的递增顺序,这个题的意思就是 ...

最新文章

  1. Python 之 Numpy (六)分割
  2. java dateformat 线程安全_SimpleDateFormat线程安全问题深入解析
  3. PowerDesigner的安装
  4. IDA Pro 搜索中文字符串
  5. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)
  6. 线程----BlockingQueue
  7. 设计模式的C语言应用-建造者模式-第七章
  8. Cookie学习总结
  9. 【MySQL】Unknown column 'column_name' in 'field list'
  10. java中的UDP总结
  11. c语言学习系统(学习c语言用什么软件)
  12. 技术指南 | 使用 mPaaS 配置 SM2 国密加密指南
  13. 【机器人技术基础】MATLAB Robotics Toolbox PUMA560 运动学正逆解
  14. 网络socket编程(c语言)
  15. mark制图软件_mac自带的画图工具在哪?如何使用苹果电脑自带的预览工具进行画图操作...
  16. 读者推荐 · 一个美观的简历生成器
  17. Mac 系统mysql密码重置
  18. VB6 MsgBox 函数
  19. 编译原理-语法制导翻译、后缀表达式、三元、四元
  20. ES6入门--let的基本使用

热门文章

  1. 309. Best Time to Buy and Sell Stock with Cooldown
  2. Nagios监控之9:利用sendmail使用第三方SMTP服务发送邮件报警
  3. 程序局部性原理的一些思考
  4. const、static、const staic理解
  5. WebDev.WebServer 学习
  6. 我的世界服务器反作弊不起作用,我的世界服务器反作弊怎么搞 | 手游网游页游攻略大全...
  7. 我的机器学习入门之路(中)——深度学习(自然语言处理)
  8. Leetcode 102. 二叉树的层次遍历 解题思路及C++实现
  9. Backbone集合
  10. 用go语言制作读取excel模板批量生成表格工具