本文主要是介绍nyoj-655-光棍的yy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//法一
#include<stdio.h>
#include<string.h>
char a[205];
int b[205],c[205],d[205];
int main()
{
int s;
scanf("%d",&s);
while(s--)
{
int n,m,p,t,i,j,k;
scanf("%s",a);
n=strlen(a);
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
b[0]=1;
m=0;
for(i=0;i<n;i++)
{
t=0;
for(j=0;j<=m;j++)
d[j]=b[j];
for(j=0;j<=m;j++)
{
p=b[j]+c[j]+t;
b[j]=p%10;
t=p/10;
if(j==m&&t!=0)
m++;
}
for(j=0;j<=m;j++)
c[j]=d[j];
}
for(i=m;i>0;i--)
printf("%d",b[i]);
printf("%d\n",b[0]);
}
return 0;
}
//法二
#include<stdio.h>
#include<string.h>
char a[205],b[205],c[205],d[205];
int main()
{
int s;
scanf("%d",&s);
while(s--)
{
int n,i,j,t,k,m;
scanf("%s",a);
n=strlen(a);
memset(b,'0',sizeof(b));
memset(c,'0',sizeof(c));
b[0]='1';
for(i=0;i<n;i++)
{
strcpy(d,b);
t=0;
for(j=0;j<205;j++)
{
k=(b[j]+c[j]-96)+t;
b[j]=k%10+48;
t=k/10;
}
strcpy(c,d);
}
m=0;
for(i=204;i>=0;i--)
if(b[i]=='0')
m++;
else break;
for(i=204-m;i>=0;i--)
printf("%c",b[i]);
printf("\n");
}
return 0;
}
这篇关于nyoj-655-光棍的yy的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!