计算元素周期表第n周期的元素个数

Posted by

可以得出一个通项公式:

    \[ a_n= \frac{{(2n+3+(-1)^n)}^2}{8} \]

经过一些不是很复杂的处理,即可实现。

代码:

#include <cstdio>
#include <cctype>
#include <cstring>
#include <iostream>
#include <cmath>
static const int MAXN=1e6;
static const int lim=1e2;
using namespace std;
int n,s,a[MAXN];
inline int f(int x){
   return (int)pow(((x<<1)+3+(int)pow(-1,x)),2)>>3;
}
inline void init(){
    a[1]=2;
    for(int i=3;i<=lim;i+=2) a[i-1]=a[i]=f(i);
}
int main(){
    init();
    puts("Input the period:");
    scanf("%d",&n);
    printf("The number of elements in the %d period is %d:",n,a[n]);
    puts("\n");
    system("pause");
    return 0;
}

 

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注