Problem Description
Calculate A + B.
 
Input
Each line will contain two integers A and B. Process to end of file.
 
Output
For each case, output A + B in one line.
 
Sample Input
1 1
 
Sample Output
2
#include<stdio.h>   
void main() 
  int a,b; 
  while(scanf("%d %d",&a,&b)!=EOF) 
  {
    printf("%d\n",a+b);
  }   
Problem Description
Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).
In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.
Input
The input will consist of a series of integers n, one integer per line.
Output
For each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit signed integer.
Sample Input
1
100
Sample Output
1
5050
#include<stdio.h>   
void main() 
  int n,sum,i; 
  while(scanf("%d",&n)!=EOF) 
  { 
    sum=0; 
    for( i=0;i<=n;i++) 
        sum+=i; 
    printf("%d\n\n",sum);
  }   
Problem Description
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
 
Input
The first line of the input contains an integer T(1<=T<=20) which means the number of te
st cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.
 
Output
For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.
 
Sample Input
2
1 2
112233445566778899 998877665544332211
 
Sample Output
Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 111111*********1110
#include <stdio.h>
#include <string.h>
int main(){
    char str1[1001], str2[1001];
    int t, i, len_str1, len_str2, len_max, num = 1, k;
    scanf("%d", &t);
    getchar();
    while(t--){
        int a[1001] = {0}, b[1001] = {0}, c[1001] = {0};
        scanf("%s", str1);
        len_str1 = strlen(str1);
        for(i = 0; i <= len_str1 - 1; ++i)
            a[i] = str1[len_str1 - 1 - i] - '0';
        scanf("%s",str2);
        len_str2 =  strlen(str2);
        for(i = 0; i <= len_str2 - 1; ++i)
            b[i] = str2[len_str2 - 1 - i] - '0';
        if(len_str1 > len_str2)
            len_max = len_str1;
        else
            len_max = len_str2;
        k = 0;
        for(i = 0; i <= len_max - 1; ++i){
            c[i] = (a[i] + b[i] + k) % 10;
            k = (a[i] + b[i] + k) / 10;
        }
        if(k != 0)
        c[len_max] = 1;
        printf("Case %d:\n", num);
        num++;
        printf("%s + %s = ", str1, str2);
        if(c[len_max] == 1)
            printf("1");
        for(i = len_max - 1; i >= 0; --i){
            printf("%d", c[i]);
        }
        printf("\n");
        if(t >= 1)
            printf("\n");
    }
    return 0;
}
Problem Description
Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.
 
Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line starts with a number N(1<=N<=100000), then N integers followed(all the integers are between -1000 and 1000).
 
Output
For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line contains three integers, the Max Sum in the sequence, the start position of the sub-sequence, the end position of the sub-sequence. If there are more than one result, output the first one. Output a blank line between two cases.
 
Sample Input
2
include和contain5 6 -1 5 4 -7
7 0 6 -1 1 -6 7 -5
 
Sample Output
Case 1:
14 1 4
Case 2:
7 1 6
注:最大子序列是要出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和
是6。你已经看出来了,最大子序列的方法很简单,只要前i项的和还没有小于0那么子序列就一直向后扩展,否则丢弃之前的子序列开始新的子序列,同时我们要记下各个子序列的和,最后到和最大的子序列
#include<stdio.h>
int a[100005],str[100005],start[100005];
int main()
{
    int t,n,i,num=1,end,max,k;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        str[1]=a[1];start[1]=1;
        for(i=2;i<=n;i++)
        {
            if(str[i-1]>=0)
            {
                str[i]=str[i-1]+a[i];
                start[i]=start[i-1];
            }
            else
            {
                str[i]=a[i];
                start[i]=i;
            }
        }
        max=str[1];end=1;
        for(k=2;k<=n;k++)
        {
            if(str[k]>max)
            {
                max=str[k];
                end=k;
            }
        }
        printf("Case %d:\n",num);
        num++;
        printf("%d %d %d\n",max,start[end],end);
        if(t)
        printf("\n");
    }
    return 0;
}
Problem Description
Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time is guessing the most popular problem. When the contest is over, they will count the balloons of each color and find the result.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。