UVa 763 - Fibinary Numbers
来源:互联网 发布:淘宝网店退押金 编辑:程序博客网 时间:2024/06/06 05:47
题目:斐波那契进制加法。
分析:模拟、大整数。先将两数装换成10进制加和,再转化回Fib进制数即可。
注意:fib(100)超过long long类型。
#include <stdio.h>#include <stdlib.h>#include <string.h>char a[105];char b[105]; int F[105][31];int c[105];int V[31];int cmp( int *a, int *b ){for ( int i = 25 ; i >= 0 ; -- i )if ( a[i] != b[i] )return a[i]-b[i];return 0;}int main(){F[0][0] = F[1][0] = 1LL;for ( int i = 2 ; i <= 101 ; ++ i ) {for ( int j = 0 ; j < 25 ; ++ j )F[i][j] = F[i-1][j]+F[i-2][j];for ( int j = 0 ; j < 25 ; ++ j ) {F[i][j+1] += F[i][j]/10;F[i][j] %= 10; }}int Count = 0;while ( scanf("%s%s",a,b) != EOF ) {memset( V, 0, sizeof(V) );memset( c, 0, sizeof(c) );//a转化成10进制 int La = strlen(a);for ( int i = 1 ; i <= La ; ++ i )if ( a[La-i] == '1' ) {for ( int j = 0 ; j < 25 ; ++ j ) V[j] += F[i][j];for ( int j = 0 ; j < 25 ; ++ j ) {V[j+1] += V[j]/10;V[j] %= 10;}}//b转化成10进制 int Lb = strlen(b);for ( int i = 1 ; i <= Lb ; ++ i )if ( b[Lb-i] == '1' ) {for ( int j = 0 ; j < 25 ; ++ j ) V[j] += F[i][j];for ( int j = 0 ; j < 25 ; ++ j ) {V[j+1] += V[j]/10;V[j] %= 10;}}for ( int i = 101 ; i >= 1 ; -- i ) if ( cmp( V, F[i] ) >= 0 ) {c[i] = 1;for ( int j = 0 ; j < 25 ; ++ j ) {V[j] -= F[i][j];if ( V[j] < 0 ) {V[j] += 10;V[j+1] -= 1; }}}if ( Count ++ ) printf("\n");int end = 101;while ( end > 1 && !c[end] ) -- end;while ( end > 0 ) printf("%d",c[end--]);printf("\n");}return 0;}
- UVa 763 - Fibinary Numbers
- UVA - 763 Fibinary Numbers
- uva 763 Fibinary Numbers
- UVa 763 - Fibinary Numbers
- uva 763Fibinary Numbers
- uva 763 - Fibinary Numbers(Fibonacci)
- uva 763 - Fibinary Numbers(斐波那契数)
- UVA 763 - Fibinary Numbers(高精度斐波那契)
- Fibinary Numbers
- UVA 763 - Fibinary Numbers(高精度斐波那契 + 高精度模板)
- uva-10202-Pairsumonious Numbers
- UVa 10006 Carmichael Numbers
- uva 10006 - Carmichael Numbers
- uva 138 - Street Numbers
- uva 138 street numbers
- uva 10202 parsumonious numbers
- uva 10042 smith numbers
- UVA 138 Street Numbers
- ado处理单数据的控件
- 如何成为运维架构师
- VS中 程序出现异常不提示,直接闪退 解决
- UML图之用例图
- C++第14周项目6——银行系统,真正多用户
- UVa 763 - Fibinary Numbers
- 加载自定义插件
- Redhat 本地yum源配置
- c++多线程入门与提高 blogdown整理
- ActionForm的生命周期
- 如何设置圆角的EditText——Android移动开发
- Java学习笔记(十七)
- ibatis 缓存
- 11级_Java_曹建波 11.29 文件上传