题目链接:EOJ 3344.送命题
题目乍一看以为是斐波那契数列。其实不然。
#include <stdio.h>#include <stdlib.h>#include <string.h>void rev_str(char s[]){ //反转字符串int c,i,j;for (i = 0, j = strlen(s) - 1; i < j; i++, j--){c = s [i];s[i] = s[j];s[j] = c;}}int fib(int n){char str1[10], str2[10];if (n == 1 || n == 2) return 1;if (n <= 7) return fib(n - 1) + fib(n - 2);else {sprintf(str1, "%d", fib(n - 1));//将整型转化为字符串,跨平台使用时用sprintf,%d为十进制sprintf(str2, "%d", fib(n - 2));//itoa(fib(n-1),str1,10);//itoa(fib(n-2),str2,10);rev_str(str1);rev_str(str2);return atoi(str1)+atoi(str2);}}int main(){int n;scanf("%d", &n);printf("%d\n", fib(n));return 0;}
如果觉得《EOJ 3344.送命题》对你有帮助,请点赞、收藏,并留下你的观点哦!