首页 > 代码库 > hdoj 1715 大菲波数 【字符串相加】
hdoj 1715 大菲波数 【字符串相加】
策略 :如题;
为什么昨天比赛的时候就没想出来,
模糊点 :
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。