传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1081
首先一开始是0000000
然后++++++++
最低位到头了
然后上一位++
最低位--------
第二位到头了
第三位++
第二位-------
++++++++++
---------------------
++++++++++++++++
---------------------------------
完了
P.S.由于没有spj所以只能像下面这样= =、
Code:
#include<bits/stdc++.h>
using namespace std;
int n,B;
int pe[65536];
int delta[65536];
void out(){
for(int i=1;i<=n;i++){
if(pe[i]<10)putchar(pe[i]+'0');
else putchar(pe[i]-10+'A');
}puts("");
}
int main(){
cin>>n>>B;
int num=1;
for(int i=1;i<=n;++i)delta[i]=1,num*=B;num--;
out();
while(num--){
for(int i=1;i<=n;i++){
if(pe[i]+delta[i]>=0&&pe[i]+delta[i]<B){
pe[i]+=delta[i];
break;
}else delta[i]=-delta[i];
}out();
}return 0;
}