策略 :如题;
为什么昨天比赛的时候就没想出来,
模糊点 :
char c = a;
c += 1; //此时c = ‘b’;
注意:我是把最低位放到数组的较靠后的位置
AC by: SWS
链接http://acm.hdu.edu.cn/showproblem.php?pid=1715
代码:
#include<stdio.h> #include<string.h> char a[300], b[300], c[300]; void f(int n){ strcpy(a, "1"); strcpy(b, "1"); int la, lb, i, j, k, s; for(s = 3; s <= n; s ++){ la = strlen(a); lb = strlen(b); i = j = k = 0; while(i<la&&j<lb){ c[k++] = a[i]+b[j]-'0'; i++; j++; } while(i<la){ c[k++] = a[i]; i++; } while(j<lb){ c[k++] = b[j]; j++; } i = 0; while(i<k){ if(c[i]>'9'){ if(c[i+1] < '0') c[i+1]= c[i+1]+1+'0'; else c[i+1] += 1; c[i] -= 10; } i++; } if(c[k]) c[k+1] = '\0'; else c[k] = '\0'; strcpy(a, b); strcpy(b, c); memset(c, 0, sizeof(c)); } lb = strlen(b); for(i = lb-1; i >= 0; i --) printf("%c", b[i]); printf("\n"); } int main() { int t, n; scanf("%d", &t); while(t --){ scanf("%d", &n); f(n); } return 0; }
AC time :2014 / 07 /31
hdoj 1715 大菲波数 【字符串相加】
时间: 2024-10-05 04:58:28