带着母猪去扫荡 发表于 2015-6-19 11:44:55

如何用数组(和函数)来处理”混合数列“??

例如: (1)   26,11,31,6,36,1,41。。。。
            (2)   5,3,10,6,15,12。。。。。
         还有一些常见的混合数列。。。

它们该如何用数组(和函数)来处理。。。。我刚接触c语言不久。。还有数学能力有点差。。请大家多多指教咯!!{:5_92:}

仰望天上的光 发表于 2015-6-19 13:49:06

第一题这样,第二题同理,自己做
/*
简单分析:
(1)n%2==0时(n为偶数),a = 26+5*n/2
(2)n%2==1时(n为奇数),a = 11-5*n/2
综上,利用数字电路中的布尔代数原理,得:
a = !(n%2)*(26+5*n/2) + n%2*(11-5*n/2)
*/
#include <stdio.h>

int get_vector_an( int n );
int main(void) {
        int n;
        while(1 == scanf("%d", &n)) {
                printf( "%d\n", get_vector_an(n) );
        }
        return 0;
}

int get_vector_an( int n ) {
        return !(n%2)*(26+n/2*5) + n%2*(11-n/2*5);
}

带着母猪去扫荡 发表于 2015-6-19 19:59:08

仰望天上的光 发表于 2015-6-19 13:49
第一题这样,第二题同理,自己做

谢谢了。。很好呀!!好用。。。{:5_106:}
页: [1]
查看完整版本: 如何用数组(和函数)来处理”混合数列“??