计蒜客_计数和数数(C语言实现)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计蒜客_计数和数数(C语言实现)相关的知识,希望对你有一定的参考价值。

“伯爵说”序列如下:1, 11, 21, 1211, 111221, ...1 读作 "one 1" 或者 11。11 读作 "two 1s" 或者21。21 读作 "one 2, one 1" 或者 1211。

格式:多组输入,读到文件结束。每组输入给定一个整数n,输出第n个序列。(1<=n<=30)

注意:整数序列以字符串的形式表示。

规律:

  1 由 1 个 1组成

  11 由 2 个 1组成

  21 由 1 个 2 和 1 个 1 组成

  1211 由 1 个 1 ,1 个 2, 2 个 1组成

  111221 由...

  

 1 #include <stdio.h>
 2 #include <string.h>
 3 void func(char *s, int n);
 4 int main()
 5 {
 6     int n;
 7     char s[10000];
 8     while (scanf("%d", &n)!=EOF){
 9         strcpy(s, "1");
10         func(s, n);
11         printf("%s\n", s);
12     } 
13     return 0;
14 }  
15 void func(char *s, int n)
16 {
17     int i, j, count, len;
18     char ch, tmp[10000];
19     for (j = 1; j < n; ++j) {
20         len = 0;
21         for (i = 0; s[i] != \0; ++i) {
22            if (i == 0) {
23                 ch = s[i];
24                 count = 1;
25             }
26             else {
27                 if (ch == s[i])
28                     ++count;
29                 else {
30                      len += sprintf(tmp+len, "%d%c", count, ch);
31                      ch = s[i];
32                      count = 1;
33                 }
34             }
35         }
36         sprintf(tmp+len, "%d%c", count, ch);
37         strcpy(s,tmp);
38     }
39 }

 

以上是关于计蒜客_计数和数数(C语言实现)的主要内容,如果未能解决你的问题,请参考以下文章

计蒜客 删除字母'c'

计蒜客练习题:两仪剑法

计蒜客课程竞赛入门--最近通话记录(STL队列) 流程记

计蒜客--无脑博士的试管们

计蒜客 无脑博士和他的试管们

计蒜客_跳跃游戏