1. 程式人生 > >新生練習(三) 題解

新生練習(三) 題解

Problem A:迴文串

#include<stdio.h>
#include<string.h>  //strlen()函式的 標頭檔案

int main(void){
    int flag=0; //定義一個標誌變數
    char s[1010];
    int len; //定義字串的長度常量
    scanf("%s",&s);
    len=strlen(s); //求字串的長度
    for(int i=0;i<len/2;i++){
        if(s[i]!=s[len-1-i] && s[i]!=s[len-1-i]+32 && s[i]!=s[len-1-i]-32){
            flag=1; //改變flag的值  即值此串非迴文串
            break; //結束迴圈 節省時間
        }
    }
    if(flag==0){ //迴文串
        printf("yes\n");
    }
    else{
        printf("no\n");
    }
    return 0;
}

Problem B:你們都能做的題(1)

#include<stdio.h>

int main(void){
    int n;
    int min=1e9,max=-1;

    /*初始化 min 和 max
      記錄最大值和最小值
    */

    int a[1010];
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        if(a[i]>max){  //找到最大值
            max=a[i];
        }
        if(a[i]<min){  //找到最小值
            min=a[i];
        }
    }
    printf("%d %d\n",max,min);
    return 0;
}

Problem C:你們都能做的題(2)

#include<stdio.h>
#define mod 100000  //巨集定義 mod

int main(void){
    int n,m;
    int sum_n=1;  //做乘法初始化為1
    int sum_m=0;  // 做加法初始化為0
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        sum_n*=i;
        sum_n%=mod; //每步求餘保證資料不溢位
    }
    for(int i=1;i<=m;i++){
        sum_m+=i;
    }
    printf("%d\n",sum_n+sum_m);
    return 0;
}