A 起床时间

  • 知识点:顺序结构,基本运算符使用,\、%
  • 思路:转换成统一的时间单位计算

    参考代码
    #include<bits/stdc++.h>
    using namespace std;
    int main() {
        int h,m,x;
        cin>>h>>m>>x; 
        int r=h*60+m-x; 
        cout<<r/60<<" "<<r%60;
        return 0;
    }
    

B i 的 i次方

  • 知识点:简单循环嵌套

  • 思路:外层循环求和,内层循环求积,累积器需要每次初始化为1;数据类型超出了int范围,使用long long

    参考代码
    #include<bits/stdc++.h>
    using namespace std;
    int main() {
      long long n,sum=0,ji=1;
      cin>>n;
      for(int i=1;i<=n;i++){
          ji=1;
          for(int j=1;j<=i;j++){
              ji*=i;
          }
          sum+=ji;
      }
      cout<<sum;
      return 0;
    }
    

C 单词排序

  • 知识点:字符串、结构体排序

  • 思路

    • 每个字符出现的次数放进桶里;

    • 每个字符及出现的次数存进结构体;

    • 自定义结构体排序规则,先比较字符次数不同的从高到低,字符相同的比较字典序

    参考代码
    #include<bits/stdc++.h>
    using namespace std;
    int a[255];//桶 
    struct node{
        char c;
        int cnt;
    };
    node nd[255]; 
    //自定义结构体排序
    bool cmp(node nd1,node nd2){
        if(nd1.cnt!=nd2.cnt){
            return nd1.cnt>nd2.cnt;
        }
        return nd1.c<nd2.c;
    } 
    int main() {
        string s;
        getline(cin,s);
        int len=s.size();
        //放进桶里 
        for(int i=0;i<len;i++){
            if(s[i]!=' '){
                a[s[i]]++;
            }
        }
        //放进结构体数组、逆序输出
        int pos=0;
        for(int i=0;i<=255;i++){
            if(a[i]!=0){
                ++pos;
                nd[pos].c=(char)i;
                nd[pos].cnt=a[i];
            }
        } 
        sort(nd+1,nd+1+pos,cmp);//结构体排序
        for(int i=1;i<=pos;i++){
            cout<<nd[i].c;
        } 
        return 0;
    }
    

D 偶数位的数

  • 知识点:复杂循环嵌套,分离数位

  • 思路:外层循环枚举数的范围;内层循环分离数位,计算每个数的位数,判断偶数;

  • 注意点:内层循环不能直接使用外层循环变量i做除法,否则会导致死循环;内层循环使用的计数器要初始化

    参考代码
    #include<bits/stdc++.h>
    using namespace std;
    int main() {
        int l,r,ans=0;
        cin>>l>>r;
        for(int i=l;i<=r;i++){
            int num=i,cnt=0;
            while(num>0){
                cnt++;
                num/=10;
            }
            if(cnt%2==0){
                ans++;
            }
        }
        cout<<ans;
        return 0;
    }
    
Copyright ©图灵之星 2024,转载需注明出处该文件修订时间: 2024-12-22 22:45:21

results matching ""

    No results matching ""