UVa:11375 Matches

白书上的例题。用到了大数加法。注意它问的是用n根火柴可以摆成多少个整数,就是说少于n根火柴的时候也是可以的。另外注意前导0的情况。

 

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <vector>
#include <queue>
#include <algorithm>
#define ll long long
#define INF 2139062143
#define MOD 20071027
#define MAXN 20005
using namespace std;
int v[]= {6,2,5,5,4,5,6,3,7,6};
int w[]= {0,0,1,1,1,2,3,1,0,0};
void BigAdd(char *a,char *b,char *back)
{
    char c[500]= {0};
    int p=0,up=0;
    for(int i=strlen(a)-1,j=strlen(b)-1; i>=0||j>=0; --i,--j)
    {
        int x,y,z;
        if(i<0) x=0;
        else x=a[i]-'0';
        if(j<0) y=0;
        else y=b[j]-'0';
        z=(x+y+up)%10;
        up=(x+y+up)/10;
        c[p++]=z+'0';
    }
    if(up) c[p++]='1';
    c[p]=0;
    int q=0;
    for(int i=p-1; i>=0; --i)
        back[q++]=c[i];
    if(q==0) back[q++]='0';
    back[q]=0;
}

char f[2010][500];
char d[2010][500];
char temp[500]= {0};
void Init()
{
    strcpy(d[0],"1");
    for(int i=1; i<=2000; ++i)strcpy(d[i],"0");
    for(int i=0; i<=2000; ++i)
        for(int j=0; j<10; ++j)
            if(!(i==0&&j==0))
            BigAdd(d[i+v[j]],d[i],d[i+v[j]]);
    BigAdd(d[6],"1",d[6]);
    strcpy(f[0],"0");
    for(int i=1; i<=2000; ++i)
        BigAdd(d[i],f[i-1],f[i]);

}
int main()
{
    Init();
    int n;
    while(scanf("%d",&n)!=EOF)
        puts(f[n]);
    return 0;
}


 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值