【PHP】从数列1,2,3.......n 中随意取几个数,使其和等于m(一段神奇的代码)
来源:互联网 发布:r混合编程 epub 编辑:程序博客网 时间:2024/05/29 04:59
链接:https://www.nowcoder.com/questionTerminal/11cc498832db489786f8a03c3b67d02c
来源:牛客网
输入两个整数 n 和 m,从数列1,2,3…….n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来
输入描述:
每个测试输入包含2个整数,n和m
输出描述:
按每个组合的字典序排列输出,每行输出一种组合
示例1
输入
5 5
输出
1 4
2 3
5
没有任何思路,无奈。。。。。。
看到一大神代码,精彩至极,我给改造成了PHP,贴出来,供以后慢慢品尝。
<?php $str = trim(fgets(STDIN));$n = explode(" ", $str)[0];$m = explode(" ", $str)[1];function help($n, $m, $arr, $beg){ //echo "{$n}---{$m}---".count($arr)."---{$beg}".PHP_EOL; //var_dump($arr); //echo PHP_EOL; if($m == 0){//如果最后加起来有等于m的,则输出栈里面的所有内容,否则什么都不做,直接出栈 for($i=0; $i<count($arr); $i++){ //$i==0?(echo $arr[$i]):(echo " ".$arr[$i]); if($i==0){ echo $arr[$i]; }else{ echo " ".$arr[$i]; } } echo PHP_EOL; } for($j = $beg; $j<=$n&&$j<=$m; $j++){ array_push($arr, $j);//入栈 help($n, $m-$j, $arr, $j+1); array_pop($arr);//出栈 } }$arr = []; help($n, $m, $arr, 1);
测试:
[root@VM_114_93_centos exam]# php renyinqiuhe.php 5 61 2 31 52 4[root@VM_114_93_centos exam]# php renyinqiuhe.php 9 91 2 61 3 51 82 3 42 73 64 59
阅读全文
1 0
- 【PHP】从数列1,2,3.......n 中随意取几个数,使其和等于m(一段神奇的代码)
- 从数列1,2,3.......n 中 随意取几个数,使其和等于 m
- 从数列1,2,3.......n 中 随意取几个数,使其和等于 m
- 从数列1,2,3.......n 中 随意取几个数,使其和等于 m
- 从数列1,2,3.......n 中 随意取几个数,使其和等于 m
- 从数列1,2...n中随意取几个数,使其和等于m
- 输入两个整数n和m,从数列1,2,3...n中随意取几个数,使其和等于m,要求列出所有的组合
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能..
- 从数列1,2,3.......n 中随意取几个数,使其和等于sum
- 中兴面试题 : 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m. --java算法解决方法。
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m
- 输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m
- 输入两个整数n和m,从数列1,2,3....n中随意取几个数,使其和等于m
- 动态规划——5 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m
- 《动态规划》 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m
- 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m问题
- 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,使其和等于 m
- 算法--中兴面试:输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数, 使其和等于 m
- JQuery的2种each方法的区别
- PAT (Basic Level) Practise (中文) 1049. 数列的片段和(20)
- JAVA之Servlet的学习
- 洛谷 P1978 集合
- (转)基于FPGA技术的FAST行情解码研究
- 【PHP】从数列1,2,3.......n 中随意取几个数,使其和等于m(一段神奇的代码)
- iOS入门之打包静态库
- Android Studio配置Gradle版本Refreshing.....
- czl蒻蒟的OI之路6
- JAVA设计模式之单例模式-大佬博客
- C/C++ — 浅析C++的强制类型转换
- 二叉树的基本操作 【二叉树】
- pat 乙级 1065. 单身狗(25)
- head first java 笔记 chapter 8~10