2011年4月28日 星期四

分享

高中生程式解題系統 d490: 我也愛偶數

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    int input1,input2;
    int i;
    int sum;

    while(scanf("%d %d",&input1,&input2)!=EOF)
    {
        sum = 0;
        for(i=input1;i<=input2;i++)
        {
            if(i%2 == 0)
            {
                sum += i;
            }
        }

        printf("%d\n",sum);
    }
    
    return 0;
}
分享

高中生程式解題系統 d489: 伏林的三角地

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    int a,b,c;
    double s;
    
    while(scanf("%d %d %d",&a,&b,&c)!=EOF)
    {
        s = 0.5 * (double)(a+b+c);
        printf("%.f\n",(s*(s-a)*(s-b)*(s-c)));
        
    }
    
    return 0;
}
分享

高中生程式解題系統 d485: 我愛偶數

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    int input1;
    int input2;
    
    while(scanf("%d %d",&input1,&input2)!=EOF)
    {
        input1 = input1 + input1 % 2;
        input2 = input2 - input2 % 2;

        printf("%d\n",(input2-input1)/2+1);
        
    }
    
    return 0;
}
分享

高中生程式解題系統 d483: hello, world

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    printf("hello, world\n");
    
    return 0;
}
分享

高中生程式解題系統 d461: 班際籃球賽

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input;
    
    while(scanf("%d",&input)!=EOF)
    {
        printf("%d\n",input-1);
    }
    
    return 0;
}
分享

高中生程式解題系統 d460: 山六九之旅

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input;
    
    while(scanf("%d",&input)!=EOF)
    {
        printf("%d\n",(input>=6 && input<=11)*590 + (input>=12 && input<=17)*790 + (input>=18 && input<=59)*890 + (input>=60)*399);
    }
    
    return 0;
}
分享

高中生程式解題系統 d277: 矩形对角线

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input;
    
    while(scanf("%d",&input)!=EOF)
    {
        if(input>0 && input<pow(2,31))
        {
            if(input%2 == 0)
                printf("%d\n",input);
            else
                printf("%d\n",input-1);
        }
    }
    
    return 0;
}

2011年4月27日 星期三

分享

高中生程式解題系統 d086: 態度之重要的證明

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(void) 
{

    char input[200];
    int length,i;
    int score;
    int index;

    while(gets(input)!=NULL)
    {

        if(input[0] == '0' && input[1] == '\0')
            break;
        
        index = 0;
        score = 0;
        length = strlen(input);

        for(i=0;i<length;i++)
        {
            input[i] = tolower(input[i]);

            if(input[i] >= 96 && input[i] <= 122)
                score+=input[i];
            else
            {
                printf("Fail\n");
                index = 1;
                break;
            }
        }
        
        if(!index)
            printf("%d\n",score - 96 * length);

    }
    
    return 0;
}
分享

高中生程式解題系統 d074: 電腦教室

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    int length;
    int i;
    int *temp;
    int max;

    while(scanf("%d",&length)!=EOF)
    {
        max = 0;
        temp = (int *) malloc(length*sizeof(int));

        for(i=0;i<length;i++)
            scanf("%d",&temp[i]);

        for(i=0;i<length;i++)
        {
            if(max < temp[i])
                max = temp[i];
        }

        printf("%d\n",max);

        free(temp);
    }
    
    return 0;
}
分享

高中生程式解題系統 d073: 分組報告

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    int input;

    while(scanf("%d",&input)!=EOF)
    {
        printf("%d\n",(input - 1) / 3 + 1);
    }
    
    return 0;
}
分享

高中生程式解題系統 d072: 文文的求婚--續集 (Case 版)

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    int input;
    int *temp;
    int i;

    while(scanf("%d",&input)!=EOF)
    {
        temp = (int *) malloc(input*sizeof(int));
        
        for(i=0;i<input;i++)
            scanf("%d",&temp[i]);

        for(i=0;i<input;i++)
        {
            if((( temp[i] % 4 == 0) && ( temp[i] % 100 != 0)) || ( temp[i] % 400 == 0))
                printf("Case %d: a leap year\n",i+1);
            else
                printf("Case %d: a normal year\n",i+1);
        }
        
        free(temp);
        
    }
    
    return 0;
}
分享

高中生程式解題系統 d071: 文文的求婚--續集 (EOF 版)

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int year;
    
    while(scanf("%d",&year)!=EOF)
    {
        if((( year % 4 == 0) && ( year % 100 != 0)) || ( year % 400 == 0))
            printf("a leap year\n");
        else
            printf("a normal year\n");
        
    }
    
    return 0;
}
分享

高中生程式解題系統 d070: 文文的求婚--續集 (0 尾版)

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int year;
    
    while(scanf("%d",&year)!=EOF)
    {
        if(year == 0)
            return 0;
        else if((( year % 4 == 0) && ( year % 100 != 0)) || ( year % 400 == 0))
            printf("a leap year\n");
        else
            printf("a normal year\n");
        
    }
    
    return 0;
}
分享

高中生程式解題系統 d069: 文文的求婚--續集 (n 行版)

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    int input;
    int *temp;
    int i;

    while(scanf("%d",&input)!=EOF)
    {
        temp = (int *) malloc(input*sizeof(int));
        
        for(i=0;i<input;i++)
            scanf("%d",&temp[i]);

        for(i=0;i<input;i++)
        {
            if((( temp[i] % 4 == 0) && ( temp[i] % 100 != 0)) || ( temp[i] % 400 == 0))
                printf("a leap year\n");
            else
                printf("a normal year\n");
        }

        free(temp);
        
    }
    
    return 0;
}
分享

高中生程式解題系統 d068: 該減肥了

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int weight;
    
    while(scanf("%d",&weight)!=EOF)
    {
        printf("%d\n",weight - (weight > 50));
        
    }
    
    return 0;
}
分享

高中生程式解題系統 d067: 文文的求婚--續集 (1 行版)

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int year;
    
    while(scanf("%d",&year)!=EOF)
    {
        if((( year % 4 == 0) && ( year % 100 != 0)) || ( year % 400 == 0))
            printf("a leap year\n");
        else
            printf("a normal year\n");
        
    }
    
    return 0;
}
分享

高中生程式解題系統 d066: 上學去吧

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int hour,minute;

    while(scanf("%d %d",&hour,&minute)!=EOF)
    {
        if((hour>=8 && hour<=16) || (hour==7 && minute>=30))
            printf("At School\n");
        else
            printf("Off School\n");
    }

    return 0;
}
分享

高中生程式解題系統 d065: 三人行必有我師

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input1,input2,input3 ;
    int temp;

    while(scanf("%d %d %d",&input1,&input2,&input3)!=EOF)
    {
        if(input1 > input2)
            temp = input1;
        else 
            temp = input2;

        if(temp > input3)
            printf("%d\n",temp);
        else
            printf("%d\n",input3);
    
    }

    return 0;
}
分享

高中生程式解題系統 d064: ㄑㄧˊ 數

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input ;

    while(scanf("%d",&input)!=EOF)
    {
    
        if(input % 2 == 0)
            printf("Even\n");
        else 
            printf("Odd\n");
    
    }

    return 0;
}
分享

高中生程式解題系統 d063: 0 與 1

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input ;

    while(scanf("%d",&input)!=EOF)
    {
        
        printf("%d\n",input==0);
    
    }

    return 0;
}
分享

高中生程式解題系統 d060: 還要等多久啊

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input;

    while(scanf("%d",&input)!=EOF)
    {
        printf("%d\n",(85 - input) % 60);
    }

    return 0;
}
分享

高中生程式解題系統 d059: 數學函數練習

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input1,input2,input3,input4,input5,input6;

    while(scanf("%d %d %d %d %d %d",&input1,&input2,&input3,&input4,&input5,&input6)!=EOF)
    {
            printf("%d\n",(int)pow(input1,input2));
            printf("%.3f\n",(double)sqrt(input3));
            printf("%d\n",abs(input4));
            printf("%d\n",rand()%(input6-input5)+input5);
    }

    return 0;
}
分享

高中生程式解題系統 d058: BASIC 的 SGN 函數

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input;

    while(scanf("%d",&input)!=EOF)
    {
            printf("%d\n",(-1) + (input >= 0) + (input > 0) );
    }

    return 0;
}

2011年4月24日 星期日

分享

高中生程式解題系統 d051: 糟糕,我發燒了!

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    long int input;

    while(scanf("%d",&input)!=EOF)
    {
        printf("%.3f\n",(double)(input-32)*5/9);
    }

    return 0;
}
分享

高中生程式解題系統 d050: 妳那裡現在幾點了?

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input;

    while(scanf("%d",&input)!=EOF)
    {
        printf("%d\n",(input+9)%24);
    }

    return 0;
}
分享

高中生程式解題系統 d049: 中華民國萬歲!

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input;

    while(scanf("%d",&input)!=EOF)
    {
        if(input>=1912)
            printf("%d\n",input-1911);
    }

    return 0;
}
分享

高中生程式解題系統 d010: 盈數、虧數和完全數


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>


int main(void) 
{
    
    int input,sum,index;
    int *temp;
    int i;

    while(scanf("%d",&input)!=EOF)
    {
        sum = index = 0;
        temp = (int *) malloc(input*sizeof(int));

        for(i=1;i<=input/2;i++)
            if(input % i == 0)
            {
                temp[index] = i;
                index++;
            }

        for(i=0;i<index;i++)
            sum += temp[i];

        if(sum>input)
            printf("盈數\n");
        else if(sum == input)
            printf("完全數\n");
        else
            printf("虧數\n");

        free(temp);
    }

    return 0;
}
分享

高中生程式解題系統 a065: 提款卡密碼


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(void) 
{
    
    char input[100];
    int length;
    int i;
    
    while(gets(input)!=NULL)
    {
        length = strlen(input);

        for(i=0;i<length-1;i++)
            printf("%d",abs(input[i] - input[i+1]));

        printf("\n");
    }
    return 0;
}

分享

高中生程式解題系統 a059: 完全平方和


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(void) 
{
    
    int length;
    int i,j;
    int temp[100];
    int num1,num2,sum;
    
    while(scanf("%d",&length)!=EOF)
    {
        for(i=0;i<length*2;i++)
            scanf("%d",&temp[i]);

        for(i=0;i<length*2;i+=2)
        {
            num1 = (int)ceil(sqrt(temp[i]));
            num2 = (int)floor(sqrt(temp[i+1]));
            sum = 0;

            for(j=num1;j<=num2;j++)
                sum += (j*j);
            
            printf("Case %d: %d\n",(i/2)+1,sum);
        }
                
    }
    return 0;
}

分享

高中生程式解題系統 a058: MOD3


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(void) 
{
    
    int length;
    int i;
    int temp[100];
    int k_0,k_1,k_2;
    
    while(scanf("%d",&length)!=EOF)
    {
        k_0 = k_1 = k_2 = 0;

        for(i=0;i<length;i++)
            scanf("%d",&temp[i]);

        for(i=0;i<length;i++)
        {
            if(temp[i] % 3 == 0)
                k_0++;
            else if(temp[i] % 3 == 1)
                k_1++;
            else if(temp[i] % 3 == 2)
                k_2++;
        }

        printf("%d %d %d\n",k_0,k_1,k_2);

        
    }
    
    return 0;
}

分享

高中生程式解題系統 a053: Sagit's 計分程式


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(void) 
{
    
    int input;
    
    while(scanf("%d",&input)!=EOF)
    {
        if(input>=0 && input <=10)
            printf("%d\n",input*6);
        else if(input>=11 && input<=20)
            printf("%d\n",(input-10)*2+60);
        else if(input>=21 && input<=40)
            printf("%d\n",(input-20)+80);
        else
            printf("100\n");
    }
    
    return 0;
}

分享

高中生程式解題系統 a044: 空間切割


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(void) 
{
    
    int input;

    while(scanf("%d",&input)!=EOF)
    {
        printf("%d\n",(input*(input*input+5))/6+1);
    }
    
    return 0;
}

分享

高中生程式解題系統 a042: 平面圓形切割

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(void) 
{
    
    int input;

    while(scanf("%d",&input)!=EOF)
    {
        printf("%d\n",(input*(input-1)+2));
    }
    
    return 0;
}

分享

如何在blogger上貼程式碼

使用方法如下:

Format My Source Code for Blogging


分享

高中生程式解題系統 a038: 數字翻轉


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(void) 
{
    
    int input;
    int output;

    while(scanf("%d",&input)!=EOF)
    {
        output = 0;

        while(input)
        {
            output *= 10;
            output += input % 10;
            input /= 10;
        }
        printf("%d\n",output);

    }
    
    return 0;
}

分享

高中生程式解題系統 a034: 二進位制轉換


#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void) 
{

    int input;
    int length;
    int i;

    while(scanf("%d",&input)!=EOF)
    {
        for(i=1;i<=30;i++)
        {
            if(pow(2,i)>input)
            {
                length = i;
                break;
            }            
        }

        int temp[100] = {0};
        
        for(i=0;i<length;i++)
        {
            temp[i] = input % 2;
            input /= 2;
        }

        for(i=length-1;i>=0;i--)
            printf("%d",temp[i]);

        printf("\n");

    }
    
    return 0;
}

分享

高中生程式解題系統 a032: 階乘運算


#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void) 
{

    long long int input;
    long long int i;
    
    while(scanf("%lld",&input)!=EOF)
    {
        long long int output = 1;

        if(input==0)
            printf("1\n");
        else
        {
            for(i=1;i<=input;i++)
                output *= i;
        
            printf("%lld\n",output);
        
        }
    }
    
    return 0;
}

分享

高中生程式解題系統 a024: 最大公因數(GCD)


#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void) 
{

    int num1;
    int num2;

    while(scanf("%d %d",&num1,&num2)!=EOF)
    {
        while((num1 %= num2) && (num2 %= num1));

        printf("%d\n",num1+num2);
    }
    
    return 0;
}

分享

高中生程式解題系統 a015: 矩陣的翻轉


#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void) 
{
    int row;
    int column;
    int i,j;

    while(scanf("%d %d",&row,&column)!=EOF)
    {
        int A[100][100] = {0};

        for(i=0;i<row;i++)
            for(j=0;j<column;j++)
                scanf("%d",&A[i][j]);

        for(i=0;i<column;i++)
        {
            for(j=0;j<row;j++)
                printf("%d ",A[j][i]);
            printf("\n");
        }

    }
    
    return 0;
}

分享

高中生程式解題系統 a012: Hashmat的戰役

C99編譯器支援long long

但VC6並不支援C99

所以必須在可支援C99的系統下執行,如:DEV-C


#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void) 
{
    long long int num1; 
    long long int num2;

    while(scanf("%lld %lld",&num1,&num2)!=EOF)
    {
         printf("%lld",(num1-num2 > 0)? num1-num2 : num2-num1);
    }
    
    return 0;
}

分享

高中生程式解題系統 a011: 幼稚園的算數遊戲

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

int main(void) 
{
    char input[10000];
    int m_length;
    int i,index;
    int state;

    while(gets(input)!=NULL)
    {
        index = 0;
        state = 0;
        m_length = strlen(input);
        for(i=0;i<=m_length;i++)
        {
            if((input[i]>='A' && input[i]<='Z') || (input[i]>='a' && input[i]<='z'))
                state = 1;
            else
                if(state)
                {
                    index++;
                    state = 0;
                }
        }

        
        printf("%d\n",index);

    }

    return 0;
}

2011年4月23日 星期六

分享

高中生程式解題系統 a010: 因數分解

#include <stdio.h>
#include <math.h>


int main(void) 
{
    
    int input,index,i,j,k;

    while(scanf("%d",&input)!=EOF)
    {
        index= 0;

        for(i=2;i<=sqrt(input);i++)
        {
            if((input % i) == 0)
            {
                index++;
                break;
            }
        }
        if(index>=1)
        {
            for(j=2;j<=input;j++)
            {
                if(input % j == 0)
                {
                    printf("%d",j);
                    k = 0;
                    while(input % j == 0)
                    {
                        k++;
                        input /= j;
                    }
                    if(k > 1)
                        printf("^%d",k);
                    if(input > 1)
                        printf(" * ");
                }
            }        
            printf("\n");            
            
        }
        else
            printf("%d\n",input);
        
        
        
    }
    
    return 0;
}
分享

高中生程式解題系統 a009: 解碼器

#include <stdio.h>
#include <string.h>
#include <math.h>


int main(void) 
{

    char num[100];
    const int k = 7;
    int i;
    while(gets(num)!=NULL)
    {    
        int m_length = strlen(num);
        for(i=0;i<m_length;i++)
        {
            num[i] -= 7;
            putchar(num[i]);
        }
        putchar('\n');
    }
    
    return 0;
}
分享

高中生程式解題系統 a007: 判斷質數

#include <stdio.h>
#include <math.h>


int main(void) 
{
    
    int input,i;

    while(scanf("%d",&input)!=EOF)
    {
        int index= 0;

        for(i=2;i<=sqrt(input);i++)
        {
            if((input % i) == 0)
            {
                index++;
                printf("非質數\n");
                break;
            }
        }
        if(index<1)
            printf("質數\n");

                

    }
    
    return 0;
}
分享

高中生程式解題系統 a006: 一元二次方程式

#include <stdio.h>
#include <math.h>


int main(void) 
{
    
    int a,b,c;
    int sum;

    while(scanf("%d %d %d",&a,&b,&c)!=EOF)
    {
        sum = (b * b) - (4 * a * c);
        if( sum > 0 )
        {
            sum = (int)sqrt(sum);
            printf("Two different roots x1=%d , x2=%d\n", (-b+sum)/(2*a),(-b-sum)/(2*a) );
        }
        else if(sum == 0)
            printf("Two same roots x=%d\n",(-b)/(2*a));
        else 
            printf("No real root\n");
                
    }
    
    return 0;
}
分享

高中生程式解題系統 a005: Eva 的回家作業

#include <stdio.h>


int main(void) 
{
    
    int num,num1,num2,num3,num4,i;


    while(scanf("%d",&num)!=EOF)
    {
        for(i=0;i<num;i++)
        {
            scanf("%d %d %d %d",&num1,&num2,&num3,&num4);

            if(((num4 - num3) == (num3 - num2)) && ((num3 - num2) == (num2 - num1)))
            {
                int m_sub = num4 - num3;
                printf("%d %d %d %d %d\n",num1,num2,num3,num4,num4+m_sub);     
            }
            else if(num4 % num3 == num3 % num2 == num2 % num1 == 0)
            {
                int m_mod = num4 / num3;
                printf("%d %d %d %d %d\n",num1,num2,num3,num4,num4 * m_mod);
            }
            
        }
                    
    }
    
    return 0;
}
分享

高中生程式解題系統 a004: 文文的求婚

#include <stdio.h>


int main(void) 
{

    int year;

    while(scanf("%d",&year)!=EOF)
    {
        if((( year % 4 == 0) && ( year % 100 != 0)) || ( year % 400 == 0))
            printf("閏年\n");
        else
            printf("平年\n");

    }
    
    return 0;
}
分享

高中生程式解題系統 a003: 兩光法師占卜術

#include <stdio.h>


int main(void) 
{

    int month;
    int day;
    int score;

    while(scanf("%d %d",&month,&day)!=EOF)
    {
        score = (month*2+day)%3;

        switch(score)
        {
        case 0:
            printf("普通\n");
            break;
        case 1:
            printf("吉\n");
            break;
        case 2:
            printf("大吉\n");
            break;
        }

    }
    
    return 0;
}

2011年4月22日 星期五

分享

高中生程式解題系統 a002: 簡易加法

#include <stdio.h>


int main(void) 
{

    int num1;
    int num2;

    while(scanf("%d %d",&num1,&num2)!=EOF)
    {
        printf("%d\n",num1+num2);
    }
    
    return 0;
}
分享

高中生程式解題系統 a001: 哈囉

#include <stdio.h>


int main(void) 
{

    char input[1000];

    while(gets(input)!=NULL)
    {
        printf("hello, %s\n",input);
    }
    
    return 0;
}
分享

高中生程式解題系統 a022: 迴文

#include <stdio.h>
#include <string.h>


int main(void) 
{

    char input[1000];

    while(gets(input)!=NULL)
    {
        int i;
        int input_length = strlen(input);

        char input2[1000];

        for(i=0;i<=input_length;i++)
            input2[i]=input[i];
        
        for(i=0;i<=input_length;i++)
        {
            if(input[i] == input2[input_length-i-1])
            {
                printf("yes\n");
                break;
            }
            else
            {
                printf("no\n");
                break;
            }
        }
        
    }
    
    return 0;
}