10 01 11 00
如果输入为3,则输出为
111 000 110 101 011 100 001 010
我有一个代码片段
#!/usr/bin/perl#print "a|b|c\n";for $a (1,0){ for $b (1,0){ for $c (1,0) { for $d ( 1,0) { print "$a $b $c $d"; #print $x = ($a & $b & $c); print "\n"; } } }}print "\n";
上面的代码是4.
如果不编写多个for循环,我不知道如何做到这一点.这里的值为2我需要写两个for循环,依此类推.
任何机构都可以告诉我如何为几个输入值调整此代码.
任何帮助将非常感谢
解决方法 递归这是一个使用递归的简单解决方案:
#!/usr/bin/perl -w my $variables=$ARGV[0]||0;show_combinations($variables); sub show_combinations { my($n,@prefix)=@_; if($n > 0) { show_combinations( $n-1,@prefix,0); show_combinations( $n-1,1); } else { print "@prefix\n"; } }
以下是一些示例案例:
> script.pl 101> script.pl 20 00 11 01 1> script.pl 30 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1总结
以上是内存溢出为你收集整理的perl – 给定输入的真值表生成全部内容,希望文章能够帮你解决perl – 给定输入的真值表生成所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)