北航2017C语言|程序设计题七

计划将历届的程序设计、算法题都写出来,先实现python版本,然后再实现c版本这样既练习了python的使用,也有c语言版的以便考试之用。

七.程序设计题(本题15分)
请编写一C语言函数psum,该函数的功能是首先接收两个整数类型的参数a和n,然后计算机表达式“ 1^a + 2^a +...+ n^a”的结果。需要注意的是,当a或者n小于等于0时,该函数返回0。(提示:可以先编写一个求解n^a的辅助函数,再在psum函数中计算累加和)

python 3.7版本

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#定义计算n^a 其中a可理解为相乘的个数,n为乘数
def cube(a,n):
    tmp = 1
    while(a > 0):
        tmp = tmp * n
        a = a - 1
    return tmp
#接收a、n整形数据并计算n^a的和
def psum():
    a = input("input int a >>>\n")
    n = input("input int n >>>\n")
    a = int(a)
    n = int(n)
    if a <= 0 or n <= 0:
        return 0
    else:
        count = 0
        循环累加
        for i in range(1,n+1):
            count += cube(a,i)
        return count

if __name__ == '__main__':
    b = psum()
    print(b)
  • 执行结果
input int a >>>
2
input int n >>>
10
385

C语言版

#include <stdio.h>
//定义计算n^a 其中a可理解为相乘的个数,n为乘数
int cube(int a,int n){
    int tmp = 1;
    while (a > 0){
        tmp = tmp * n;
        a = a-1;
    }
    return tmp;
}
//接收a、n整形数据并计算n^a的和
int psum(void){
    int a,n;
    int count = 0;
    printf("input int a >>>\n");
    scanf("%d",&a);
    printf("input int n >>>\n");
    scanf("%d",&n);
    if (a <= 0 || n<= 0){
         return 0;
    }
    else{
        for(int i=1;i<=n;i++){
            count += cube(a,i);
        }
        return count;
        }
}
int main(void) {
    int b;
    b=psum();
    printf("%d",b);
    return b;
}
  • 执行结果
input int a >>>
2
input int n >>>
10
385
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 关于诊断X线机准直器的作用,错误的是()。 (6.0 分) A. 显示照射野 B. 显示中心线 C. 屏蔽多...
    我们村我最帅阅读 10,832评论 0 5
  • Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资...
    Clemente阅读 3,281评论 0 54
  • 背负着太过沉重的爱,生活太累,所以我选择与自己和解,我把对你的爱都放在心里,我再也不会去触碰那逝去的三年
    小草_3b17阅读 152评论 0 0
  • 第一章 结束了一个漫长的暑假,学生们来到了两个月未见的校园。一切都是哪样的熟悉。一大早,校园里就挤满了学生,大...
    女神的宝贝阅读 498评论 0 1
  • 是不是就要走到那一步?回到公司就会有这样的想法,大家的状态都不好,可能就是不在状态吧,没有创业者的心态与行动,似乎...
    沉愚落雁阅读 184评论 0 0