通过了40%的测试用例是怎么回事?找不到错误呀
#include <iostream> using namespace std; int main() { long long a, b, c, m; cin >> a >> b >> c >> m; long long k; cin >> k; long long r[100000]; r[0] = 1;//初始状态,只有0岁的兔子1对 for (long long i = 1; i <= m; i++) { long long newborner = 0;//每个月的新生儿初始化为0 for (long long j = i; j > 0; j--) { r[j] = r[j - 1];//这个月j岁的兔子数量等于上个月j-1岁的兔子数量 if (j == 1) newborner += r[j] * a;//1岁的兔子每对a个新生儿,共r[j]*a个 else if (j == 2) newborner += r[j] * b;//2岁的兔子每对b个新生儿 else if (j >= 3) newborner += r[j] * c; } r[0] = newborner;//0岁新生儿的数量就是上面的所有新生儿数量相加 } long long sum = 0; for (long long i = 0; i <= m; i++) { sum += r[i];//求兔子的数量和 } cout << sum <<endl; cout << (k-1)/sum+1 << endl;//最开始的每1只兔子m个月后会变成sum只, //想要m个月后至少有k只最开始就应该有ceil(k/sum)只 return 0; }
想知道另外的60%的测试数据为什么没有通过。按理来讲通过40%的数据,算法应该是没有错的吧。那为啥剩下的没通过呢?
示例的测试数据我通过了
求大神解答。感激不尽。😭