使徒来袭
题目
神秘的使徒袭击了第三新东京市,少男少女们驾驶着决战兵器EVA守护着人类的和平。
牛可乐是NERV特务机关的指挥官,他必须时刻了解牛牛/牛妹/牛能三人的战斗状态。现在牛可乐获得了这三位EVA驾驶员的战斗力之积,在保证三位驾驶员战斗力均为正实数的情况下,请你帮助牛可乐计算这三位驾驶员的战斗力之和最低是多少?
解析
知识点:均值不等式以及均值不等式推广到n的形式,自行搜索
代码
#include <stdio.h>
#include <math.h>
int main()
{int n;double m;scanf("%d", &n);m = 3 * pow(n, 1.0 / 3);printf("%.3lf", m);return 0;
}
小白兔分身
题目
白兔学会了分身术。
一开始有一只白兔,接下来会进行k轮操作,每一轮中每一只白兔都会变成p只白兔。
要求k轮后白兔的总数恰好为n。
要求找到两个正整数p,k,最大化p+k
解析
最大加一,原因是指数增长最快
代码
#include <stdio.h>int main()
{long long int n;scanf("%lld", &n);printf("%lld", n + 1);return 0;
}
如果题目改成p+k最小化
就可以看成如果p的k次方等于n且p+k小于p+k的最大值,那么最小值就是p+k
即 if (pow(p, k) == n && (p + k) < s)
两个for循环p,k
代码
#include <stdio.h>
#include <math.h>
int main()
{int n, p, k, s;scanf("%d", &n);s = n + 1;for (p = 1; p <= n; p++){for (k = 1; k <= n; k++){if (pow(p, k) == n && (p + k) < s){s = p + k;}}}printf("%d", s);return 0;
}