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

2018-06-18 04:20:38来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

“伯爵说”序列如下: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 }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:printf函数

下一篇:对指针的学习总结