是蒟蒻,大佬嘲笑我的时候请轻轻的。易碎品,建议轻拿轻放。
任务描述
本关任务:试编写算法,计算函数值:n! * 2^n
函数原型:int suanfa(int a[], int n,int arrsize)
功能说明:计算 i!*2^i 的值并存入数组 a[0…arrsize-1]的第 i-1 个分量中(i=1,2,…,n)。假设计算机中允许的整数最大值为 INT_MAX,则当 n>arrsize 或对某个 1<=k<=n,使得k!*2^k>INT_MAX 时,函数返回值为0;无错误时返回1。
#define INT_MAX 185794561
int suanfa(int a[],int n, int arrsize)
{
/**********begin**********/
if(n>arrsize){
return 0;
}
int i, jc = 1, zs = 1;
for(i=1; i<=n; i++){
jc *= i;
zs *= 2;
a[i-1] = jc * zs;
if(a[i-1]>INT_MAX){
return 0;
}
}
return 1;
/**********end**********/
}
#define INT_MAX 2147483647
int suanfa(int a[],int n, int arrsize)
{
/**********begin**********/
if(n>arrsize){
return 0;
}
int i;
long int jc = 1, zs = 1;
for(i=1; i<=n; i++){
jc *= i;
zs *= 2;
if(jc*zs>INT_MAX){
return 0;
}
a[i-1] = jc * zs;
}
return 1;
/**********end**********/
}
这道题其实不需要动脑子,但是我把所有的细节坑踩了个遍(救命),建议继续巩固C语言并练题。
2021.4.1