1.sprintf(c)
sprintf与printf用法几乎一样,只不过打印的目的地不一样,sprintf是打印到字符串中,printf是直接在命令上输出
sprintf定义如下
int sprintf( char *buffer, const char *format [, argument] … );
常见应用:格式化数字字符串即将整数打印到字符串中
如把整数123打印成一个字符串保存在s中
sprintf(s,"%d",123);//产生“123”
2. next_permutation(c++,STL)
STL提供了两个用来计算排列组合关系的算法,分别是next_permutation和prev_permutation
next_permutation()会取得[first,last)所标示之序列的下一个排列组合.需要分清前一个与后一个。举例:“abc”。因为a是序列内最小的元素,所以abc是第一个,而acb是第二个。同理固定b的话,bca的上一个是bac,因为ac的次序比ca小。
总结:想要获得全部的排列组合应从次序最小的开始输入
1、输出序列{1,2,3,4}字典序的全排列。
using namespace std;
int main(int argc, char** argv) {
int a[4]={1,2,3,4};
sort(a,a+4);
do{
//cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<" "<<a[3]<<endl;
for(int i=0;i<4;i++)
cout<<a[i]<<" ";
cout<<endl;
}while(next_permutation(a,a+4));
return 0;
}
加上<algorithm>才能使用,一般也是配合do..while使用。
应用:宫格填数可使用这个函数暴力AC。