计划将历届的程序设计、算法题都写出来,先实现python版本,然后再实现c版本这样既练习了python的使用,也有c语言版的以便考试之用。
七.程序设计题(本题15分)
请编写一C语言函数psum,该函数的功能是首先接收两个整数类型的参数a和n,然后计算机表达式“ ”的结果。需要注意的是,当a或者n小于等于0时,该函数返回0。(提示:可以先编写一个求解的辅助函数,再在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