2470 - 【数组】国际象棋盘
上机练习5.1.1 国际象棋盘中,第1格放1粒米,第2格放2粒米,第3格放4粒米,第4格放8粒米,第5格放16粒米,......问:16个格子总共可以放多少粒米?
【分析】第i个格子可放多少粒米:2i-1,也可以说第i个格子的米粒数等于第i-1个格子米粒数的2倍。
题目输入
无输入。
题目输出
一个整数,表示16个格子总共放的米粒数。
输入/输出样例
题目输入
题目输出
提示
方法一:开16个元素的数组,按照规则,在数组中放米粒:第二个数组元素开始,每个数组元素中的米粒数是前面数组元素的2倍,然后相加。
方法二:试试数学知识,推出前i个格子总共放米粒的公式,可以不用数组直接用公式哦。
C语言解答
#include<stdio.h> int a[20]; int main() { int n=0,j,i; a[1]=1; for(i=1;i<=16;i++) { a[i+1]=2*a[i]; } for(j=1;j<=16;j++) { n=n+a[j]; } printf("%d",n); return 0; }
C++解答
#include<iostream> using namespace std; int a[16],s=0; int main() { a[0]=1; for (int i=1;i<16;i++) a[i]=a[i-1]*2; for (int i=0;i<16;++i) s+=a[i]; cout<<s<<endl; return 0; }
提示
方法一:开16个元素的数组,按照规则,在数组中放米粒:第二个数组元素开始,每个数组元素中的米粒数是前面数组元素的2倍,然后相加。
方法二:试试数学知识,推出前i个格子总共放米粒的公式,可以不用数组直接用公式哦。