重庆平台网站建设企业,晋中网站设计,手机网站仿站,用花生棒做网站快吗经典的题目了#xff0c;自己想了个新方法
方法#xff1a;先从低位往高位找到一个可以加的位数#xff0c;然后把后面的数变为前面那个数加1 建议先从主程序开始看。本人蒟蒻#xff0c;不好请原谅
方法#xff1a;先从低位往高位找到一个可以加的位数#xff0c;然后把…经典的题目了自己想了个新方法
方法先从低位往高位找到一个可以加的位数然后把后面的数变为前面那个数加1 建议先从主程序开始看。本人蒟蒻不好请原谅
方法先从低位往高位找到一个可以加的位数然后把后面的数变为前面那个数加1
建议先从主程序开始看。#include#include#includeusing namespace std;
int a[26],a1,a2,w;
bool add()//加布尔是用来判断当前是不是最大的数
{int g0;for (int i1;iw;i){if (a[i]!a2-i1) {gi; break;}//判断该个数是否为当前位置最大的数如果是则判断下一个数//直到找到不是最大的数的位置。}if (g0) return true;//如果每个位都是最大的数则返回退出a[g];//当前位加1for (int ig-1;i1;i--){a[i]a[i1]1;//把后面的数变为前面那个数加1}return false;
}
void write()//输出
{for (int iw;i1;i--)printf(%c,a[i]97a1-1);printf(%c\n,a[1]97a1-1);
}
int main()
{scanf(%d%d%d\n,a1,a2,w);//输入不解释a2-a1;//求他可以使用的数字数量。string s;getline(cin,s); for (int iw-1;i0;i--)//从低位往高位存{a[w-i]s[i]-97-a11;//输入。减a1加1可以方便些可以不加。}for (int i1;i5;i)//循环输入5个数{if (add()) break;//加1write();//输出}
}