zoukankan      html  css  js  c++  java
  • HDU 2743 Quicksum

    http://acm.hdu.edu.cn/showproblem.php?pid=2734

    思路挺简单的题目却折腾了好久,刚开始想把字符一个一个读进一个数组里,但却对开多大的数组产生了疑惑(后来看大神们的代码,普遍数组都开10000),便想避开,用c++的string直接cin,可是cin读字符串不把空格读进去,这道题需要计算空格。后来想到用gets(),这个函数呀....gets(char),虽然是读入字符,但只要开个字符数组,就能读字符串了...还是学艺不精呀,走了那么多弯路。

    还是把自己的代码放上来做个警戒

     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     char s;
     6     scanf("%c",&s);
     7     while(s!='#')
     8     {
     9       int i=1,sum=0;
    10       while(s!=10)
    11       { 
    12             if(s>='A'&&s<='Z')            
    13               sum+=(i++)*(s-64);             
    14             if(s==' ')
    15              i++;  
    16              scanf("%c",&s);  
    17       }
    18         printf("%d
    ",sum);
    19         scanf("%c",&s); 
    20     }    
    21 }


    大神代码

     1 #include <string.h>
     2 #include <stdio.h>
     3 
     4 int main()
     5 {
     6     char str[10000];
     7     int len,i,a[26],sum;
     8     for(i = 0;i<26;i++)
     9     {
    10         a[i] = i+1;
    11     }
    12     while(gets(str))
    13     {
    14         if(strcmp(str,"#") == 0)
    15         break;
    16         len = strlen(str);
    17         sum = 0;
    18         for(i = 0;i<len;i++)
    19         {
    20             if(str[i]>='A' && str[i]<='Z')
    21             sum+=(i+1)*a[str[i]-'A'];
    22         }
    23         printf("%d
    ",sum);
    24     }
    25 
    26     return 0;
    27 }

    自己感觉这个代码里的a数组挺多余的....strcmp也没必要用....囧

  • 相关阅读:
    在Windows下生成SSH文件
    git常用命令总结
    小Q的歌单
    在vmware下安装Ubuntu16-04
    hexo-next博客中mathjax显示问题解决
    可乐复制问题
    hexo-next博客添加评论功能
    hexo-next博客添加在线联系功能
    tableau desktop
    tableau desktop
  • 原文地址:https://www.cnblogs.com/xurenwen/p/3865121.html
Copyright © 2011-2022 走看看