求整数段和

描述:

给定两个整数AB,输出从AB的所有整数以及这些数的和。

输入格式:

输入在一行中给出2个整数AB,其中−100≤AB≤100,其间以空格分隔。

输出格式:

首先顺序输出从AB的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X

输入样例:

-3 8

输出样例:

-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30

代码:

#include<bits/stdc++.h>
#include"stdio.h"
using namespace std;
int main()
{
    int a,b,i,x=0,sum=0;
    cin >> a >> b;
    for(i = a;i<=b;i++) 
    {
        printf("%5d",i);
        x++;
        if(x==5)
        {
            cout << endl;
            x=0;
        }
        sum+=i;
    }
    if(x!=0)
        cout << endl;
    printf("Sum = %d",sum);
    return 0;
}

解析:

根据题意从a到b输出数字,并在输出的同时计算最后的和,需要主义的坑点就是当数字到最后一个的时候的换行。

输出GPLT

描述:

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。

输入样例:

pcTclnGloRgLrtLhgljkLhGFauPewSKgt

输出样例:

GPLTGPLTGLTGLGLL

代码:

#include<stdio.h>
int main() {
    char c;
    int a[4]= {0};
    while((c = getchar())!='\n') {
        if(c=='G'||c=='g') {
            a[0]++;
        } else  if(c=='P'||c=='p') {
            a[1]++;
        } else  if(c=='L'||c=='l') {
            a[2]++;
        } else  if(c=='T'||c=='t') {
            a[3]++;
        }
    }
    int len = 0;
    while(a[0]+a[1]+a[2]+a[3]>0) {
        if(a[len]>0) {
            switch(len) {
                case 0:
                    printf("G");
                    break;
                case 1:
                    printf("P");
                    break;
                case 2:
                    printf("L");
                    break;
                case 3:
                    printf("T");
                    break;
            }
            a[len]--;
        }
        len++;
        len%=4;
    }
    return 0;
}

解析:

遍历所有的字符,将符合条件的四个字符的分别计算数量并放入数组中。最后按照0123的顺序将数组里面的数据输出出来。


一只小菜鸡