zoukankan      html  css  js  c++  java
  • hdu1715

    http://acm.hdu.edu.cn/showproblem.php?pid=1715

    模板大数:

      1 #include <stdio.h>
      2 #include <string.h>
      3 #include <stdlib.h>
      4 #include <math.h>
      5 #include <assert.h>
      6 #include <ctype.h>
      7 #include <map>
      8 #include <string>
      9 #include <set>
     10 #include <bitset>
     11 #include <utility>
     12 #include <algorithm>
     13 #include <vector>
     14 #include <stack>
     15 #include <queue>
     16 #include <iostream>
     17 #include <fstream>
     18 #include <list>
     19 using  namespace  std;
     20 
     21 const  int MAXL = 500;
     22 struct  BigNum
     23 {
     24     int  num[MAXL];
     25     int  len;
     26     BigNum()
     27     {
     28         memset(num,0,sizeof(num));
     29     }
     30 };
     31 
     32 //高精度加法
     33 BigNum  Add(BigNum &a, BigNum &b)
     34 {
     35     BigNum c;
     36     int  i, len;
     37     len = (a.len > b.len) ? a.len : b.len;
     38     memset(c.num, 0, sizeof(c.num));
     39     for(i = 0; i < len; i++)
     40     {
     41         c.num[i] += (a.num[i]+b.num[i]);
     42         if(c.num[i] >= 10)
     43         {
     44             c.num[i+1]++;
     45             c.num[i] -= 10;
     46         }
     47     }
     48     if(c.num[len])
     49         len++;
     50     c.len = len;
     51     return  c;
     52 }
     53 void  print(BigNum &a)   //输出大数
     54 {
     55     int  i;
     56     for(i = a.len-1; i >= 0; i--)
     57         printf("%d", a.num[i]);
     58     puts("");
     59 }
     60 //将字符串转为大数存在BigNum结构体里面
     61 BigNum ToNum(char *s)
     62 {
     63     int i, j;
     64     BigNum  a;
     65     a.len = strlen(s);
     66     for(i = 0, j = a.len-1; s[i] != ''; i++, j--)
     67         a.num[i] = s[j]-'0';
     68     return  a;
     69 }
     70 
     71 void Init(BigNum &a, char *s, int &tag)   //将字符串转化为大数
     72 {
     73     int  i = 0, j = strlen(s);
     74     if(s[0] == '-')
     75     {
     76         j--;
     77         i++;
     78         tag *= -1;
     79     }
     80     a.len = j;
     81     for(; s[i] != ''; i++, j--)
     82         a.num[j-1] = s[i]-'0';
     83 }
     84 BigNum p[1005];
     85 void deal()
     86 {
     87     int tag=1;
     88     Init(p[1],"1",tag);
     89     Init(p[2],"1",tag);
     90     for(int i=3;i<=1000;i++)
     91     {
     92         p[i]=Add(p[i-1],p[i-2]);
     93     }
     94 }
     95 int main(void)
     96 {
     97     //freopen("in.txt","r",stdin);
     98     deal();
     99     int n;
    100     scanf("%d",&n);
    101     while(n--)
    102     {
    103         int t;
    104         scanf("%d",&t);
    105         print(p[t]);
    106     }
    107     return 0;
    108 }
    View Code
  • 相关阅读:
    完全自主创建Wrapper Tomcat容器
    python新手菜鸟之基础篇
    使用python抓取数据之菜鸟爬虫1
    简单实现Python调用有道API接口(最新的)
    演示嵌套函数定义及使用装饰器
    纯手工搭建VS 2017(社区 免费版)离线安装包
    C#中的PropertyGrid绑定对象,通过改变某一值而动态设置部分属性的特性
    WinForm 画布的标尺和网格
    Open Source
    动态链接库-Win32 DLL的说明
  • 原文地址:https://www.cnblogs.com/xuesen1995/p/4555367.html
Copyright © 2011-2022 走看看