nyoj-655-光棍的yy

2024-06-10 15:38
文章标签 nyoj yy 655 光棍

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1048569

相关文章

ZOJ 3804 YY's Minions

ZOJ 3804 YY's Minions 简单的模拟题  初始时  每个点都有两种状态 0 1  然后判断每个点周围八个方向中相邻点的状态  判断状态为1的个数 注意点状态变为X是在每秒钟的末尾 所以要在每秒钟的末尾对状态进行改变 用两个数组对前一秒的状态跟这一秒的状态分别进行存储 #include <cstdio>#include <iostream>#include <cs

NYOJ 36 最长公共子序列 (还是dp)

这个好多算法书上都有,不仅限于《算法导论》 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个

NYOJ 44 子串和 (经典的dp问题)

在《计算机算法设计与分析》看到过其它的解法,不过还是用dp效率最高 时间限制:5000 ms  |  内存限制:65535 KB 难度:3 描述 给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1<=x<=y<=n。 输入 第一行是一个整数N(N<=10)表示测试数据的组数) 每组测试数据的

NYOJ 16 矩形嵌套(动态规划)

时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一

NYOJ 17 单调递增最长子序列(动态规划)

时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3aaaababc

NYOJ 79 拦截导弹(dp)

时间限制:3000 ms  |  内存限制:65535 KB 难度: 3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于等于前一发的高度。某天,雷达捕捉到敌国导弹来袭。由于该系统还在试用阶段,所以只用一套系统,因此有可能不能拦截所有的导弹。 输入 第一

NYOJ-97-兄弟郊游问题-2013年09月18日09:10:36

兄弟郊游问题 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 2 描述 兄弟俩骑车郊游,弟弟先出发,每分钟X米,M分钟后,哥哥带一条狗出发。以每分钟Y米的速度去追弟弟,而狗则以每分钟Z米的速度向弟弟跑去,追上弟弟后又立即返回,直到哥哥追上弟弟时,狗跑了多少米? 输入 第一行输入一个整数N,表示测试数据的组数(N<100) 每组测试数据占

NYOJ-98-成绩转换-2013年09月18日08:59:30

成绩转换 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 1 描述 输入一个百分制的成绩M,将其转换成对应的等级,具体转换规则如下: 90~100为A; 80~89为B; 70~79为C; 60~69为D; 0~59为E; 输入 第一行是一个整数N,表示测试数据的组数(N<10) 每组测试数据占一行,由一个整数M组成(0<=M<=100

NYOJ-62-笨小熊-2013年09月11日08:44:21

笨小熊 时间限制: 2000 ms  |  内存限制: 65535 KB 难度: 2 描述 笨小熊的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!  这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-mi

NYOJ-2-括号配对问题-2013年09月09日09:32:18

括号配对问题 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 3 描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入 第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]",