0
许致远
中级守护
中级守护
5073 拆数2
经验值:0 时间限制:1000毫秒
题目描述 Description
输入一个正整数n,将 n 拆分为4次方数的方案数,方案不能重复。
4次方数:是其他数4次方的数。例如1(1的4次方),16(2的4次方),81(3的4次方)这些数都是4次方数。
如:n=17: 17=1+16;和17=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
共2种方案
输入描述 Input Description
输入一个正整数n (n<=2000)
输出描述 Output Description
将n 拆分为4次方数的方案数
样例输入 Sample Input
17
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
n<=2000
#include<iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<string>
#include<iomanip>
#include<sstream>
using namespace std;
int a[5],n;
int f(int n,int x){
if(n==0)
return 1;
int ans=0;
for(int i=x;i<=2&&a[i]<=n;i++){
ans+=f(n-a[i],i);
}
return ans;
}
int main(){
for(int i=1;i<=2;i++){
a[i]=i*i*i*i;
}
cin>>n;
cout<<f(n,1);
return 0;
}
哪里错了!!!
许致远在2021-04-17 21:42:23追加了内容
顶
许致远在2021-04-18 07:45:31追加了内容
顶
许致远在2021-04-18 10:12:36追加了内容
顶
许致远在2021-04-18 15:06:59追加了内容
我顶
许致远在2021-04-19 20:36:38追加了内容
我顶