[2008-05-12]匪夷所思

本文分享了一段关于编程的心得体会,并附带了一个简单的C++程序示例,该程序用于生成特定长度的所有可能的二进制组合。作者通过这段代码展示了对编程的热情,并将其作为个人创意思维的一种体现。
从来都这么细腻,却又匪夷所思的文字,夹杂点学术性的情感留露。。。。。
以后混不下去就写写文字吧。。。

这是小硕对我的意识流混乱派文字的评价

我从不看著名的文学作品
而自己心里想的东西却非常多
很多 太多 及其多 特别多
我的联想力为了提供了很多灵感

其实这些都是些低级东西
没什么深入思考
甚至基本的表达都不清晰

这样就得到了匪夷所思的称号
我很喜欢
因此blog加了这个做名字
呵呵

今天编程感觉很好
生成组合解决:

include <iostream>

using namespace std;

void generateCombination( int *a, int n );
bool isAllOnes( int *a, int n );
int findMinimumIndex( int *a, int n );
void print( int *a, int n );

void main()
{
int n;
cin >> n;
int *a = new int[ n ];
generateCombination( a, n );
delete [] a;
}

void generateCombination( int *a, int n )
{
int i, j;

for ( i = 0 ; i < n ; i++ )
a[ i ] = 0;

while( !isAllOnes( a, n ) )
{
j = findMinimumIndex( a, n );
a[ j ] = 1;
for ( i = 0 ; i < j ; i++ )
a[ i ] = 0;
print( a, n );
}

}

bool isAllOnes( int *a, int n )
{
for ( int i = 0 ; i < n ; i++ )
{
if ( a[ i ] != 1 )
return false;
else
continue;
}
return true;
}

int findMinimumIndex( int *a, int n )
{
for ( int i = 0 ; i < n ; i++ )
if ( a[ i ] == 0 )
return i;

return 0;
}

void print( int *a, int n )
{
for ( int i = 0 ; i < n ; i++ )
if ( a[ i ] )
cout << i+1 << ", ";
cout << endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值