特别感谢

感谢 蓝桥杯

三角形面积要除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精度会挂

未完待续

猜你喜欢

转载自blog.csdn.net/qq_41104612/article/details/80545260