感谢 蓝桥杯
三角形面积要除2呦
感谢 浙江大学
1633:都想到了斐波那契数列求长度,但是之后的算法错了
因为每个部分都是斐波那契数,所以要从大的开始减,保证剩余仍为斐波那契数列对应的字符串
代码优化自:别人的博客 优化了斐波那契数列求解范围,使得程序0s过题
#include <cstdio>
using namespace std;
const int maxn = 100;
const char* str = "T.T^__^";
typedef long long LL;
LL fibo[maxn];
int main()
{
LL n;
fibo[0] = 4; fibo[1] = 3;
for(int i=2; fibo[i-1] > 0; i++) {
fibo[i] = fibo[i-1] + fibo[i-2];
}
while(~scanf("%lld",&n)) {
while(n>7) {
int i = 0;
while(i<maxn && fibo[i]<n) i++;
n -= fibo[i-1];
}
printf("%c\n", str[n-1]);
}
return 0;
}
感谢 中北大学
输入输出格式一定用对,cin,scanf/cout,printf,puts,putchar不要混用,scanf要写EOF不要取反,重载运算符要写全所有的const,java—double精度会挂
未完待续