目录
16计算t=1+1/2+...+1/n-1+1/n
17计算1997!
18计算t=1-1÷2×2-1÷3×3-...-1÷n×n
19相传国际象棋是古印度舍罕王的宰相达依尔发明的.舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐. 这位聪明的宰相指着8*8共64格的象棋说:陛下,请您赏给我一些麦子吧. 就在棋盘的第1格放1粒,第2格放2粒,第三格放4粒,以后每一格都比前一格增加一位,依此放完棋盘一64格,我就感激不尽了. 舍罕王让人扛了一袋麦子,他要兑现他的许诺.请问,国王要兑现他的许诺共要多少粒麦子赏赐他的宰相?
方案一
方案二文章来源:https://www.toymoban.com/news/detail-630412.html
20某人有四张3分的邮票与三张5分的邮票,用这些邮票中的一张或若干张能得到多少种不同的邮资?(美国小学奥林匹克试题)文章来源地址https://www.toymoban.com/news/detail-630412.html
16计算t=1+1/2+...+1/n-1+1/n
//16计算t=1+1/2+...+1/n-1+1/n.c
#include <stdio.h>
int main(){
//初始化
double sum=0,n;
scanf("%lf",&n);
for (double i = 1.0; i <= n; i++) {
sum+=1/i;
}
printf("%lf",sum);
return 0;
}
17计算1997!
//17计算1997!.c
#include <stdio.h>
int main()
{
int a[20000]={1}; //存放1977!的结果,令个位数初始值为1
int carry;
int digit = 1; //存放已经有多少位数
int temp; //存放中间数字,对每位数处理进位时的关键
for(int i = 2; i <= 1997; ++i) { //每一个阶层的处理
carry = 0;
for(int j = 1;j<=digit;++j){ //处理当前数组中每一位元素与当前阶层的结果
temp = a[j-1] * i + carry;
a[j-1] = temp % 10; //逐步得到新的每一位数组元素中所代表的值
carry = temp / 10; //printf("%d",2/10);//0
}
while(carry){ //当处理完当前最后一位数时carry还为十位数时,这时将需要获得新的一位数组长度并保存
a[++digit-1] = carry % 10;
carry /= 10;
}
}
for(int i = digit; i >=1; --i) { //输出
printf("%d",a[i-1]);
}
printf("\n");
return 0;
}
18计算t=1-1÷2×2-1÷3×3-...-1÷n×n
//18计算t=1-1÷2×2-1÷3×3-...-1÷n×n.c.c
#include <stdio.h>
int main(){
//初始化
double n,sum=1;
scanf("%lf",&n);
for (int i = 2; i <= n; i++) {
sum-=1.0/(i*i);
}
printf("%.100lf",sum);
return 0;
}
//数据演示:
//E:\CODE\c\dalian2.0\cmake-build-debug\18.exe
//100
//0.3650160998151070201878098941961070522665977478027343750000000000000000000000000000000000000000000000
//进程已结束,退出代码0
19相传国际象棋是古印度舍罕王的宰相达依尔发明的.舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐. 这位聪明的宰相指着8*8共64格的象棋说:陛下,请您赏给我一些麦子吧. 就在棋盘的第1格放1粒,第2格放2粒,第三格放4粒,以后每一格都比前一格增加一位,依此放完棋盘一64格,我就感激不尽了. 舍罕王让人扛了一袋麦子,他要兑现他的许诺.请问,国王要兑现他的许诺共要多少粒麦子赏赐他的宰相?
方案一
//19印度王承诺麦子国际象棋.c
#include <stdio.h>
int main(){
//初始化
int brr[20000]={-1},arr[20000],t;
double sum=1;
int digit=1,temp=0;
for (int i = 1; i <= 30; i++) {
digit=0;
sum=sum*2;
t=sum;
while(t){
arr[++digit-1]=t%10;
t=t/10;
}
}
for (; digit>=0 ; digit--) {
printf("%d",arr[digit]);
}
return 0;
}
//数据演示:只能求到30
//E:\CODE\c\dalian2.0\cmake-build-debug\19.exe
//01073741823
//进程已结束,退出代码0
方案二
//19印度王承诺麦子国际象棋.c
/* 函数功能:国王的许诺,需要多少麦子,这些麦子合多少立方米*/
#include <stdio.h>
int main()
{
double i=1,sum=1;
for(int n=0;n<63;n++)
{ i=2*i;
sum=sum+i;
}
printf("%.0lf\n",sum);
printf("%lf\n",sum/1.42e8);
return 0;
}
//数据演示:
//
20某人有四张3分的邮票与三张5分的邮票,用这些邮票中的一张或若干张能得到多少种不同的邮资?(美国小学奥林匹克试题)
//20排列组合油票.c
#include <stdio.h>
//4*3+3*5=27
int main(){
//初始化
int arr[30],count;
for (int i = 0; i <= 4 ; i++) {
for (int j = 0; j <= 3; j++) {
count++;
}
}
printf("%d",count-1);
return 0;
}
//数据演示:
//
到了这里,关于考研C语言进阶题库——更新16-20题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!