655-光棍的yy

内存限制:64MB 时间限制:1000ms Special Judge: No
accepted:2 submit:3

题目描述:

yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊

现在给你m个1,你可以把2个1组合成一个2,这样就不是光棍了,问这样的组合有多少种??

例如(111  可以拆分为 111 12 21  有三种)

输入描述:

第一行输入一个n表示有n个测试数据 以下n行,每行输入m个1 (1 <= n,m <= 200)

输出描述:

输出这种组合种数,占一行

样例输入:

复制

3
11
111
11111

样例输出:

2
3
8

#include <iostream>
#include <cstring>
using namespace std;
//实际上就是斐波那契数,只不过数字较大的时候基本的数据类型不能存下
//用二维数组来存放大数据,num[i][j]代表第i个数共有j位,如第10个数为123456789
//则:num[10][0]=9,num[10][1]=8,num[10][2]=7,num[10][3]=6,num[10][4]=5,num[10][5]=4,
//num[10][6]=3...以此类推,因为数据过大存放不下,只有把数据的每位分开来存.

//声明全局数据
int num[205][205];
//计算每个斐波那契数对应的数值
void fib_Cacul()
{
memset(num,0,sizeof(num));
num[1][0]=1;//只有一个1时,有一种情况
num[2][0]=2;//........2......两......
int digit=1;//当前数字的位数,第三个数(i==3)时肯定是1位,在整个计算过程中只能初始化一次

for(int i=3;i<201;++i)//第几个数
{
int temp,rem;//rem代表余数,每次计算余数初始化为0
rem=0;
for(int j=0;j<digit;++j)
{
temp=num[i-1][j]+num[i-2][j]+rem;
num[i][j]=temp%10;
rem=temp/10;
}
while(rem)//如果j>digit且rem余数不为0,就代表向高位有进位,
{
num[i][digit]=rem%10;//可能进位的数字较大不止一次进位,尝试多次处理
rem/=10;
digit++;
}
}
}

int main()
{
int n;
cin>>n;
fib_Cacul();
while(n--)
{
string s;//用字符串来存储要输入的数字
cin>>s;
int i;
for(i=100;i>=0;--i)//i代表最后结果的数字的位数
if(num[s.length()][i]!=0)//忽略前导0,输入的多少个1就代表要计算的数是第几个数
break;
for(int j=i;j>=0;--j)
cout<<num[s.length()][j];//存放时高位数据在后,所以逆序输出

cout<<endl;
}
return 0;
}

nyoj 光棍的yy的更多相关文章

  1. ny655 光棍的yy 大数处理

    光棍的yy 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊. 现在给你m个1,你可以把2个 ...

  2. NYOJ-655 光棍的YY AC 分类: NYOJ 2013-12-29 19:24 224人阅读 评论(0) 收藏

    #include<stdio.h> #include<string.h> char str[210]; int max[210][52]={0}; int sum(int n, ...

  3. nyoj-655-光棍的yy(大数)

    光棍的yy 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 yy常常遇见一个奇怪的事情.每当他看时间的时候总会看见11:11,这个非常纠结啊. 如今给你m个1,你能够 ...

  4. nyoj_655_光棍的yy_201311281539

    光棍的yy 时间限制:1000 ms  |           内存限制:65535 KB 难度:2   描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊. 现在给 ...

  5. akoj-1048-求某一整数序列的全排列问题

    求某一整数序列的全排列问题 Time Limit:1000MS  Memory Limit:65536K Total Submit:35 Accepted:16 Description 现有一整数序列 ...

  6. 1254 Problem V

    问题 V: 光棍的yy 时间限制: 1 Sec  内存限制: 128 MB 提交: 42  解决: 22 [提交][状态][讨论版] 题目描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见1 ...

  7. [原]NYOJ-光棍的yy-655

    大学生程序代写 http://acm.nyist.net/JudgeOnline/problem.php?pid=655 光棍的yy 时间限制:1000 ms  |  内存限制:65535 KB 难度 ...

  8. nyoj 655-光棍的yy (python, 未A)

    655-光棍的yy 内存限制:64MB 时间限制:1000ms 特判: No 通过数:4 提交数:7 难度:2 题目描述: yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结 ...

  9. nyoj 458-小光棍数 (471)

    458-小光棍数 内存限制:64MB 时间限制:1000ms 特判: No 通过数:6 提交数:6 难度:1 题目描述: 最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111, ...

随机推荐

  1. ORACLE workflow审批界面显示附件信息和附件的下载链接(转)

    原文: ORACLE workflow审批界面显示附件信息和附件的下载链接 EBS获取附件URL 代码如下: CREATE OR REPLACE PACKAGE cux_attachment_util ...

  2. ThreadPoolExecutor类

    首先分析内部类:ThreadPoolExecutor$Worker //Worker对线程和任务做了一个封装,同时它又实现了Runnable接口, //所以Worker类的线程跑的是自身的run方法 ...

  3. flashfxp 命令行

    以后更新软件时,尽量用bat命令行 http://www.flashfxp.com/forum/flashfxp/frequently-asked-questions-faq-/14748-comma ...

  4. python break continue跳过和跳出循环

    break 语句可以跳出 for 和 while 的循环体.continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环.用break continue 写一个乘法表下 ...

  5. js日期选择并将日期返回文本框

    date.js // JavaScript Document var gMonths=new Array("一月","二月","三月",&q ...

  6. bjui的validate表单验证的使用

    date-rule ="date" 表示格式为yyyy-MM-dd date-rule = "datetime" 表示格式为yyyy-MM-dd HH:mm:s ...

  7. Git内网服务搭建全过程

    看到一篇搭建git服务器的文章,主要是公司内网搭建的,讲得非常详细,比廖雪峰的要完整,必须赞! http://developer.51cto.com/art/201507/483448.htm

  8. idea中看不到项目结构该怎么办

    点击file->project structure..->Modules 点击右上角+加号 ->import Modules 2.选择你的项目,点击确定   3.在如下页面选择imp ...

  9. oo面向对象--规格化设计

    oo面向对象--规格化设计 规格化设计与抽象 要了解规格化设计首先要了解抽象化的程序设计,两者是密不可分的. 抽象化(Abstraction) 抽象化是将数据与程序,用语义呈现他们的外观,但是隐藏起它 ...

  10. matlab学习笔记 函数bsxfun repmat

    一.举例 a=rand(3,1);b=rand(1,3); c=bsxfun(@plus,a,b); d=a*b; c和d的运算类似,只不过c是外加,d是外乘. 作用:速度快>for循环> ...