0
点赞
收藏
分享

微信扫一扫

c/c++一些刷题用到的函数及一些总结

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}字典序的全排列。

#include <iostream>
#include<algorithm>
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。

举报

相关推荐

0 条评论