H - Computer Transformation

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Submit Status Practice _

Appoint description: 
System Crawler  (Oct 10, 2016 1:02:59 PM)

Description

A sequence consisting of one digit, the number 1 is initially written into a computer. At each successive time step, the computer simultaneously tranforms each digit 0 into the sequence 1 0 and each digit 1 into the sequence 0 1. So, after the first time step, the sequence 0 1 is obtained; after the second, the sequence 1 0 0 1, after the third, the sequence 0 1 1 0 1 0 0 1 and so on.

How many pairs of consequitive zeroes will appear in the sequence after n steps?

Input

Every input line contains one natural number n (0 < n ≤1000).

Output

For each input n print the number of consecutive zeroes pairs that will appear in the sequence after n steps.

Sample Input

  1. 2
  2. 3

Sample Output

1

1

//这题意思是

1 01        0

2 1001       1

3 01101001    1

1->01 0->10

就这么一直变下去,问 n 步之后,有多少个相邻的 0

我是先输出模拟了大概 8 项找出了规律,然后。。。wa

因为数据太大,long long 也存不下

然后用字符串,当做大数处理,就可以了,注意一些细节问题,代码里有

  1. /*
  2. //EEE
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. char ch[10][1200];
  7.  
  8. int main()
  9. {
  10. strcpy(ch[0],"01");
  11.  
  12. for (int i=1;i<10;i++)
  13. {
  14. int k=0;
  15. int len=strlen(ch[i-1]);
  16. for (int j=0;j<len;j++)
  17. {
  18. if (ch[i-1][j]=='0')
  19. {
  20. ch[i][k++]='1';
  21. ch[i][k++]='0';
  22. }
  23. else
  24. {
  25. ch[i][k++]='0';
  26. ch[i][k++]='1';
  27. }
  28. }
  29. ch[i][k]='\0';
  30. }
  31. for (int i=0;i<10;i++)
  32. {
  33.  
  34. int sum=0;
  35. int len =strlen(ch[i]);
  36. for (int j=0;j<len-1;j++)
  37. {
  38. if (ch[i][j]=='0'&&ch[i][j+1]=='0')
  39. sum++;
  40. }
  41. //printf("%s\n",ch[i]);
  42. printf("%d\n",sum);
  43. }
  44. return 0;
  45. }
  46. */
  47.  
  48. #include <stdio.h>
  49. #include <string.h>
  50. #include <math.h>
  51. #include <algorithm>
  52. using namespace std;
  53.  
  54. char num[][];
  55. char str[];
  56.  
  57. char *add(char s[])
  58. {
  59. memset(str,,sizeof(str));
  60.  
  61. int i;
  62. int len=strlen(s);
  63. for (i=;i<len;i++)
  64. s[i]-='';
  65. reverse(s,s+len);
  66.  
  67. for (i=;i<len;i++)
  68. {
  69. str[i]+=s[i]*;
  70. if (i==) str[i]++;
  71.  
  72. if (str[i]>=)
  73. {
  74. str[i]-=;
  75. str[i+]++;
  76. }
  77.  
  78. }
  79. while (str[i]!=) i++;
  80. str[i]='\0';
  81. for (int j=;j<i;j++) str[j]+='';
  82. for (int j=;j<len;j++) s[j]+='';
  83. reverse(str,str+i);
  84. reverse(s,s+len);
  85. return str;
  86. }
  87.  
  88. char *de(char s[])
  89. {
  90. memset(str,,sizeof(str));
  91.  
  92. int i;
  93. int len=strlen(s);
  94. for (i=;i<len;i++)
  95. s[i]-='';
  96. reverse(s,s+len);
  97.  
  98. int k=,flag=;
  99. for (i=;i<len;i++)
  100. {
  101. str[i]+=s[i]*;
  102. if (str[i]>=)
  103. {
  104. str[i]-=;
  105. str[i+]++;
  106. }
  107.  
  108. if (flag==&&str[i]==)//减1,看这个数最后有几个 0
  109. {
  110. k++;
  111. }
  112. if (str[i]!=) flag=;
  113.  
  114. }
  115. while (str[i]!=) i++;
  116. str[i]='\0';
  117.  
  118. str[k]--;
  119. while (k--) str[k]=;//减 1
  120.  
  121. for (int j=;j<i;j++) str[j]+='';
  122. for (int j=;j<len;j++) s[j]+='';
  123. reverse(str,str+i);
  124. reverse(s,s+len);
  125. return str;
  126. }
  127.  
  128. int main()
  129. {
  130. int n;
  131. int i;
  132. int xx=;
  133.  
  134. strcpy(num[],"");
  135.  
  136. for (i=;i<=;i++)
  137. {
  138. if (i%==)
  139. {
  140. add(num[i-]);
  141. strcpy(num[i],str);
  142. }
  143.  
  144. else
  145. {
  146. de(num[i-]);
  147. strcpy(num[i],str);
  148. }
  149. }
  150. while (scanf("%d",&n)!=EOF)
  151. {
  152. printf("%s\n",num[n]);
  153. }
  154. return ;
  155. }

Computer Transformation(简单数学题+大数)的更多相关文章

  1. HDU 1041 Computer Transformation (简单大数)

    Computer Transformation http://acm.hdu.edu.cn/showproblem.php?pid=1041 Problem Description A sequenc ...

  2. hdu_1041(Computer Transformation) 大数加法模板+找规律

    Computer Transformation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/ ...

  3. (大数)Computer Transformation hdu1041

    Computer Transformation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/ ...

  4. Computer Transformation(规律,大数打表)

    Computer Transformation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/ ...

  5. HDU 6467 简单数学题 【递推公式 && O(1)优化乘法】(广东工业大学第十四届程序设计竞赛)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6467 简单数学题 Time Limit: 4000/2000 MS (Java/Others)    M ...

  6. HDU 6467.简单数学题-数学题 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)

    简单数学题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  7. Discrete Function(简单数学题)

    Discrete Function There is a discrete function. It is specified for integer arguments from 1 to N (2 ...

  8. JZOJ 5773. 【NOIP2008模拟】简单数学题

    5773. [NOIP2008模拟]简单数学题 (File IO): input:math.in output:math.out Time Limits: 1000 ms  Memory Limits ...

  9. [JZOJ5773]【NOIP2008模拟】简单数学题

    Description       话说, 小X是个数学大佬,他喜欢做数学题.有一天,小X想考一考小Y.他问了小Y一道数学题.题目如下:      对于一个正整数N,存在一个正整数T(0<T&l ...

随机推荐

  1. MongoDB系列四:解决secondary的读操作

    http://blog.itpub.net/26812308/viewspace-2124660/ 在Replica sets 中的secondary节点默认是不可读的.使用Replica Sets实 ...

  2. 2017.7.31 ELK+logback+redis的使用

    参考来自:spring mvc+ELK从头开始搭建日志平台 0 前提 ELK安装成功 redis安装成功 使用logback的项目运行成功 1 配置文件 1.1 pom.xml 为了使用logback ...

  3. 内容提供器(ContentProvider)

    一.简介内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性.目前,使 ...

  4. Wamp访问缓慢、本地主机访问缓慢解决方案

    Wamp访问缓慢.本地主机访问缓慢解决方案 Wamp访问速度缓慢可能的原因:          1.一般原因: Wamp的日志文件太大.处理办法,将位于wamp/logs/下的日志文件清空.     ...

  5. Linux 下Office 软件名称

    Linux 下Office 软件名称

  6. react-native 项目实战 -- 新闻客户端(6) -- 完善ListView头部视图

    1.因为需要定时器,所以我们要cd到当前项目根目录下安装这个类库: $ npm i react-timer-mixin --save 2.Component/ScrollImage.js /** * ...

  7. NHibernate利用Mindscape.NHibernateModelDesigner实现数据库与实体之间的转换及操作

    环境: &nbsp&nbspVisual Studio 2010 一.Mindscape.NhibernateModelDesigner安装 &nbsp&nbsp在打开 ...

  8. shell脚本检测网络是否畅通

    shell初始化安装脚本执行时,需从网络上安装一些rpm包,所有需要先检测网络的畅通性, 代码 #检测网络链接&&ftp上传数据 function networkAndFtp() { ...

  9. mysql 随机取数据

    SELECT * FROM table WHERE id >= (SELECT FLOOR(RAND()*MAX(id)) FROM table ) ORDER BY idLIMIT 1; 这样 ...

  10. free bsd x修改UTC->SCT

    #cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime #ntpdate asia.pool.ntp.org #adjkerntz -a #date