早教吧作业答案频道 -->其他-->
C语言半数集问题C++解给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下。(1)n∈set(n);(2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;(3)按
题目详情
C语言半数集问题C++解
给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下。
(1)n∈set(n);
(2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;
(3)按此规则进行处理,直到不能再添加自然数为止。
例如,set(6)={6,16,26,126,36,136}。半数集 set(6)中有6 个元素。
注意半数集不是多重集。集合中已经有的元素不再添加到集合中。 实验任务:
对于给定的自然数n,计算半数集set(n)中的元素个数。 数据输入:
输入数据由文本文件input.txt提供。每个文件只有1行,给出整数n,(0 将计算结果输出到文件output.txt中。输出文件只有1行,给出半数集 set(n)中元素个数。
输入文件示例 输出文件示例
input.txt output.txt
6 6
给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下。
(1)n∈set(n);
(2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;
(3)按此规则进行处理,直到不能再添加自然数为止。
例如,set(6)={6,16,26,126,36,136}。半数集 set(6)中有6 个元素。
注意半数集不是多重集。集合中已经有的元素不再添加到集合中。 实验任务:
对于给定的自然数n,计算半数集set(n)中的元素个数。 数据输入:
输入数据由文本文件input.txt提供。每个文件只有1行,给出整数n,(0
输入文件示例 输出文件示例
input.txt output.txt
6 6
▼优质解答
答案和解析
半数集set(n)元素个数f(n)=1+f(1)+f(2)+...+f(floor(n/2)). 用递推法求解。
#include<stdio.h>
#include<stdlib.h>
int main(){
int n;
int i,j,s;
int buf[106];
char *in="input.txt",*out="output.txt";
FILE *ip,*op;
if((ip=fopen(in,"r"))==NULL)return 1;
if((op=fopen(out,"w"))==NULL)return 2;
fscanf(ip,"%d",&n);
fclose(ip);
buf[1]=1;
buf[2]=2;
buf[3]=2;
for(i=4;i*2<=n;i++){
s=1;
for(j=1;j<=i/2;j++){
s+=buf[j];
}
buf[i]=s;
}
s=1;
for(j=1;j<=n/2;j++){
s+=buf[j];
}
fprintf(op,"%d",s);
fclose(op);
/* system("pause");*/
return 0;
}
看了 C语言半数集问题C++解给定...的网友还看了以下:
A市在B市的12km的位置,给B市发货的车以40km/时送货,以60km/时返回A市,往返1时10 2020-04-27 …
若隐若现的近反义词,宽阔的近反义词,笼罩的近反义词,昂首东望的近反义词,水天相接的近反义词,齐头并 2020-05-20 …
问:壮观,枯竭的近义词分别是?问:康可以加哪个部首组词?(组词,不要隶,要加部首)问:壮观,枯竭的 2020-05-23 …
为什么导体表面附近的场强方向与导体表面垂直导体表面附近的场强方向与导体表面垂直,此处的“场强”是指 2020-06-05 …
如图,将圆上所有的点的纵坐标压缩为原来的一半,横坐标不变,所得的曲线是什么曲线?压缩为原来的呢(探 2020-06-25 …
初三化学方程式配平我上初三,最近的化学课学到二氧化碳那块了,那里公式应该是我学化学以来感觉比较多的 2020-06-29 …
俄罗斯科学家用含20个质子的钙的一种原子轰击含95个质子的镅原子,结果4次成功合成4个第115号元 2020-07-01 …
求“迎合”的近义词迎合这个词是不是带有些贬义?如果有贬义的话有没有和迎合意思相近的中性词? 2020-07-01 …
老GRE的近义词类比scorn:reject虽然我知道GRE改革了,但是我还是很想知道有关一道老G 2020-07-23 …
关于商鞅变法(1)关于商鞅变法的目的是什么?变法得到了谁的支持?(2)商鞅后来被车裂而死,那么他变法 2020-11-07 …