算法分析-c++-字典序问题-实验报告

算法分析与设计实验报告

1.2字典序问题

姓名 时间 实验名称 李清健 3.5上午 学号 地点 字典序问题 通过上机实验,要求掌握字典序的问题描述、算法设计思想、程序代码。要求实现文件读写操作,程序运行正确。 输入一串字符串,输出字符串位于字典序中的位置。 利用排列组合的思想。可以直接用组合的思想算出比已知字符串长度小的字符串的个数,这些字符串必须符合字典序的要求(按字母顺序升序排列,且每个字母仅出现一次)。对于长度与已知字符串相等的字符串的个数,可以通过计算位于某两位之间可以存在多少个字母算出。比如在a与e之间可以存在3个字母(b,c,d)。 1.设计一个组合函数int c(int n,int r),用来计算比已知字符串长度小的字符串的个数,n为下标,r为上标。 2.在cpp文件目录下新建一个以input.txt命名的txt文件,在里面输入需要输入的数据。 3.在cpp文件目录下新建一个以output.txt命名的txt文件,在使用文件读写操作的时候,能从input.txt文件中读入数据,进过处理后,将结果输出到该文档中。 4.设计计算与已知字符串长度相等,但字典序在已知字符串前面的字符串的个数的函数。 int c(int n,int r){ //计算以n为下标,r为上标的组合的值 int answer=1,a=1,b=1; if(r!=0){ for(int i=n;i>n-r;i--){ a*=i; } for(int j=1;j<=r;j++){ b*=j; } answer=a/b; } return answer; } for(int i=len;i>=1;i--){ //计算长度等于输入的字符串的长度,但是在 201508010720 班级 四合院108 计科1507 实验目的 实验原理 实验步骤 关键代码 for(i=1;i=1;i--) { for(j=start;j

附录:完整代码

#include #include using namespace std;

int C(int r,int n) {

int anwser=1;

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4