1. 程式人生 > >數組與字符串的習題

數組與字符串的習題

正整數 sca 常量數組 hist || 完成 是否 clas ons

WERTYU

  1. 常量數組:並不需要指明大小,編譯器可以完成計算

回文詞

  1. 使用常量數組
  2. 不會輸入空格,可以安全的使用scanf
  3. isalpha, idigit, isprint...在ctype.h中定義,toupper, tolower等工具可以用來轉換大小寫。

猜數字遊戲

  1. scanf("%d",&a[i]);

生成元

  x+x的各個數字之和得到y,說明x是y的生成元,給出n(1,100000),求最小生成元。無解輸出0;

  1. 只需要一次枚舉100000內的所有正整數,標記"m+m的各個數字之和得到的數有一個生成元是m",最後查表
  2. 即找出這個數是哪個數的最小生成元。
  3. #include<stdio.h>
    #include<string.h>
    #define maxn 1000005
    int ans[maxn];
    int main()
    {
        int T,n;
        memset(ans,0,siezeof(ans));
        for(int m=1;m<maxn;m++)
        {
            int x=m,y=m;
            while(x>0)
            {
                y+=x%10;
                x/=10;
            }
            
    if(ans[y]==0||m<ans[y]) ans[y]=m; } scanf("%d",&T); while(T--) { scanf("%d",&n); printf("%d\n",ans[n]); } return 0; }

環狀序列

  1. Q: 長度為n(n<=100)的環狀DNA串(只含A,C,G,T),任務:輸出改環狀串的最小表示。
  2. 字典序:字符串在字典中的順序,對於兩個字符串,
    1. 第一個位置開始比較,某個位置字符不同時,字符較小的串,字典序較小
    2. 較短的字符串的字典序小(hi<history)
  3. #include<stdio.h>
    #include<string.h>
    #define maxn 105
    
    //判斷p是否比q的字典序小 
    int less(const char*s,int p,int q)
    {
        int n=strlen(s);
        for(int i=0;i<n;i++)
        {
            if(s[(p+i)%n]!=s[(q+i)%n])            //如果遇到字符不同,就進行判斷; 
            {                                    //註意,循環的可以用"...%n"來進行循環。 
                return (s[(p+i)%n<s[(q+i)%n]]);            //如果p<q,就返回1,其他情況返回0; 
            }
         } 
         return 0;
    }
    
    int main()
    {
        int T;
        char s[maxn];
        scanf("%d",&T);
        while(T--)
        {
            scanf("%s",s);
            int ans=0;
            int n=strlen(s);
            for(int j=0;j<n;j++)
            {
                if(less(s,j,ans))        //不斷判斷更新ans的值 
                    ans=j;
            }
            for(int i=0;i<n;i++)
            {
                putchar(s[(i+ans)%n]);        //用putchar一個個輸出字符 
            }
            putchar(\n);
        }
        return 0;
    }

  4.   註意有putchar(),和用"%n"來循環

數組與字符串的習題