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

hdoj 1715 大菲波数 【字符串相加】

时间: 2024-10-05 04:58:28

hdoj 1715 大菲波数 【字符串相加】的相关文章

HDOJ 1715 大菲波数

JAVA大数.... 大菲波数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10812    Accepted Submission(s): 3653 Problem Description Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3. 计算第n项Fibonacci数值

hdu 1715 大菲波数

题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1715 大菲波数 Description $Fibonacci$数列,定义如下:$f(1)=f(2)=1$$f(n)=f(n-1)+f(n-2) \ \ 3 \leq n$.计算第$n$项$Fibonacci$数值. Input 输入第一行为一个整数$N$,接下来$N$行为整数$Pi(1 \leq P_i \leq 1000)$. Output 输出为$N$行,每行为对应的$f(P_i)$. Samp

hdu 1715 大菲波数 高精度和运算,水

1.hdu 1715  大菲波数 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=1715 3.总结:水 #include<iostream> #include<cstring> #include<cmath> #include<queue> #include<algorithm> #include<cstdio> #define max(a,b) a>b?a:b using nam

HDU 1715 大菲波数(JAVA, 简单题,大数)

题目 //BigInteger 和 BigDecimal 是在java.math包中已有的类,前者表示整数,后者表示浮点数 import java.io.*; import java.util.*; import java.math.*; public class Main { /** * @xqq */ public BigInteger an(BigInteger a, BigInteger b, int n) { if(n == 1) { return a; } for(int i = 2

HDU 1715 大菲波数

/* 中文题意: 中文翻译: 题目大意: 解题思路: 难点详解: 关键点: 解题人:lingnichong 解题时间:2014/7/31    20:42 解题感受: */ 大菲波数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11213    Accepted Submission(s): 3802 Problem Descrip

HDUJ 1715 大菲波数

大菲波数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11074    Accepted Submission(s): 3743 Problem Description Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3. 计算第n项Fibonacci数值. Input 输入第

hdu 1715 大菲波数(大数)

题意:整数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<stdlib.h> #include<string.h> using namespace std; #define MAXN 9999//万进制 #define DLEN 4//4位 class BigNum{ private: int a[500];//可以控制大数位数(500*4) int len;//大数长度 public:

HDU - 1715 - 大菲波数 - JAVA

http://acm.hdu.edu.cn/showproblem.php?pid=1715 import java.io.*; import java.util.*; import java.math.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); BigInteger f[] = new BigInteger[1005]; f[1] = B

HDU1715 大菲波数(大数相加)(Java题解)

大菲波数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 25998    Accepted Submission(s): 9316 Problem Description Fibonacci数列,定义如下:f(1)=f(2)=1f(n)=f(n-1)+f(n-2) n>=3.计算第n项Fibonacci数值. Input 输入第一行为一