《程序设计》编程题|011-020

练习2-14 求奇数分之一序列前N项和 – 浙大版《C语言程序设计(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 处理
    double sum=0;
    for(int i=1;i<=n;++i){
        sum+=1/(double)(2*i-1);
    }
    // 输出
    printf("sum = %f\n",sum);
    
    return 0;
}

练习2-15 求简单交错序列前N项和 – 浙大版《C语言程序设计(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 处理
    double sum=0;
    int flag=1;
    for(int i=1;i<=n;++i){
        sum+=flag*1/(double)(3*i-2);
        flag*=-1;
    }
    // 输出
    printf("sum = %.3f\n",sum);
    
    return 0;
}

练习2-17 生成3的乘方表 – 浙大版《C语言程序设计(第4版)》题目集

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

int main(){
    // 输入
    const int base=3;
    int n;
    scanf("%d",&n);
    // 输出
    for(int i=0;i<=n;++i){
        printf("pow(%d,%d) = %d\n"
                ,base,i,(int)pow(base,i));
    }
    
    return 0;
}

练习2-18 求组合数 – 浙大版《C语言程序设计(第4版)》题目集

#include <stdio.h>

// 返回:非负整数->n的阶乘 负整数->-1
double fact(int n){
    if(n<0) return -1;
    if(n==0 || n==1) return 1;
    double result=1;
    for(int i=2;i<=n;++i){
        result*=i;
    }
    return result;
}

// 输出:排列数(从n个不同元素中取出k个元素构成排列)
double permutation(int n,int k){
    return fact(n)/fact(n-k);
}

// 输出:组合数(从n个不同元素中取出k个元素构成组合)
double combination(int n,int k){
    return fact(n)/(fact(n-k)*fact(k));
}

int main(){
    // 输入
    int m,n;
    scanf("%d %d",&m,&n);
    // 输出
    printf("result = %.0f\n",combination(n,m));
    
    return 0;
}

习题2-1 求整数均值 – 浙大版《C语言程序设计(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    const int numSize=4;
    // 处理
    int sum=0;
    for(int i=1;i<=numSize;++i){
        int cur;
        scanf("%d",&cur);
        sum+=cur;
    }
    double average=(double)sum/numSize;
    // 输出
    printf("Sum = %d; Average = %.1f\n",sum,average);
    
    return 0;
}

习题2-2 阶梯电价 – 浙大版《C语言程序设计(第4版)》题目集

#include <stdio.h>
#define PRICE_BASIC 0.53
#define PRICE_EXTRA 0.05

// 返回:阶梯电价
double price(double elec){
    double result=0;
    result+=PRICE_BASIC*elec;
    if(elec>50) result+=PRICE_EXTRA*(elec-50);
    return result;
}

int main(){
    // 输入
    double elec;
    scanf("%lf",&elec);
    // 边界处理
    if(elec<0){
        printf("Invalid Value!");
        return 0;
    }
    // 输出
    printf("cost = %.2f\n",price(elec));
    
    return 0;
}

习题2-3 求平方与倒数序列的部分和 – 浙大版《C语言程序设计(第4版)》题目集

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

int main(){
    // 输入
    int m,n;
    scanf("%d %d",&m,&n);
    // 处理:求部分和
    double sum=0;
    for(int i=m;i<=n;++i){
        sum+=pow(i,2)+1.0/i;
    }
    // 输出
    printf("sum = %f\n",sum);
    
    return 0;
}

习题2-4 求交错序列前N项和 – 浙大版《C语言程序设计(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 处理:求交错序列前n项和
    double sum=0;
    int flag=1;
    for(int i=1;i<=n;++i){
        sum+=(double)flag*i/(2*i-1);
        flag*=-1;
    }
    // 输出
    printf("%.3f\n",sum);
    
    return 0;
}

习题2-5 求平方根序列前N项和 – 浙大版《C语言程序设计(第4版)》题目集

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

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 处理:求平方根序列前n项和
    double sum=0;
    for(int i=1;i<=n;++i){
        sum+=sqrt(i);
    }
    // 输出
    printf("sum = %.2f\n",sum);
    
    return 0;
}

习题2-6 求阶乘序列前N项和 – 浙大版《C语言程序设计(第4版)》题目集

#include <stdio.h>

// 返回:非负整数->n的阶乘 负整数->-1
double fact(int n){
    if(n<0) return -1;
    if(n==0 || n==1) return 1;
    double result=1;
    for(int i=2;i<=n;++i){
        result*=i;
    }
    return result;
}

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 处理:求阶乘序列前n项和
    double sum=0;
    for(int i=1;i<=n;++i){
        sum+=fact(i);
    }
    // 输出
    printf("%.0f\n",sum);
    
    return 0;
}

发表评论