1 条题解
-
0
C++ :
#include<iostream> using namespace std; int ans; void dfs(int m){ int i; ans++; //m变成1的时候不进入循环跳出递归 for(i=1;i<=m/2;i++) dfs(i); } int main(){ int n; cin>>n; dfs(n); cout<<ans - 1; return 0; }Java :
import java.util.Scanner; public class Main { private static int[] array=new int[200];//存储计算过的值 public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt();//要分解的数 array[1]=1;//设置初值 System.out.println(Fun(n)-1); in.close(); } public static int Fun(int n) { int result=1; if(array[n]>0) return array[n]; for ( int i = 1; i <= n/2 ; i++ ) { result +=Fun(i); } array[n]=result; return result; } }
- 1
信息
- ID
- 287
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者