UVA - 763 Fibinary Numbers
来源:互联网 发布:淘宝助理5.8 编辑:程序博客网 时间:2024/06/08 13:30
题意: 将用斐波那切表示的二进制相加,题目说可能一个数可以有几种不同的表示形式,那么要求不存在两个相邻的1,至于二进制相加的时候有几个注意的地方,就是当ans[i]>=1的时候,如果ans[i-1]>=1的话,那么利用斐波那切的公式ans[i]=ans[i-1]+ans[i-2]
处理使得不存在相邻的两个1,还有的就是当ans[i]>=2的时候,利用ans[i+1]=ans[i]+ans[i-1],ans[i]=ans[i-1]+ans[i-2]得到2*ans[i] = ans[i+1]+ans[i-2],i==1的时候特殊处理
#include<stdio.h>#include<string.h>using namespace std;char s1[111],s2[111];int a[111],b[111],ans[111];void calcu(int i){ if (i==0){ if (ans[i]==2)ans[0]=0,ans[1]++; } else if(ans[i-1]){ ans[i-1]--; ans[i]--; ans[i+1]++; } else if (ans[i]>=2){ ans[i]-=2; ans[i+1]++; if (i==1) ans[0]++; else{ ans[i-2]++; calcu(i-2); } }}int main(){ int i,j,k,flag=0; while(scanf("%s%s",s1,s2)!=-1){ if (flag) puts(""); flag++; int len1=strlen(s1); for (i = 0;i < len1; i++) a[i]=s1[len1-1-i]-'0'; int len2=strlen(s2); for (i = 0; i < len2; i++) b[i]=s2[len2-1-i]-'0'; if(len1<len2) len1=len2; for(i = 0; i < len1; i++){ ans[i]+=a[i]+b[i]; if(ans[i]) calcu(i); } if (ans[len1]) calcu(len1++); if (ans[len1]) len1++; for (i = len1-1; i >= 0;i--) printf("%d",ans[i]); puts(""); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(ans,0,sizeof(ans)); } 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
- 目录扫描程序详解
- spoj cot Count on a tree
- 【Android】判断某个App是否安装并启动(queryIntentActivities),
- 一种稳健的自适应图像平滑算法(芮杰等)
- JAVA-容器(一)
- UVA - 763 Fibinary Numbers
- Mahout源码分析之DistributedLanczosSolver(4)--rawEigen
- linux bc命令使用
- struts2 18拦截器详解(三) --- AliasInterceptor
- Max Sum
- 存储容量问题
- Java容器(二)
- 自己
- Hashmap 与 HashTable 的区别