问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

等式求和 Pascal 速求!好的追加

发布网友 发布时间:2022-10-17 03:22

我来回答

2个回答

热心网友 时间:2023-10-27 02:20

等式(100分)
(源程序名:equal.pas或equal.c或equal.cpp,编译后可执行程序名:equal.exe)
【问题描述】
有一个未完成的等式:1 2 3 4 5 6 7 8 9=N
当给出整数N的具体值后,请你在2,3,4,5,6,7,8,9这8个数字的每一个前面,或插入一个运算符号“+”号,或插入一个运算符号“-”号,或不插入任何运算符号,使等式成立,并统计出能使等式成立的算式总数,若无解,则输出0。
例如:取N为108时,共能写出15个不同的等式,以下就是其中的二个算式:
1+23+4+56+7+8+9=108 123-45+6+7+8+9=108
【输入】输入文件equal.in中只有1个数,即整数N的值。
【输出】输出文件equal.out只有一行,该行只有1个数,表示能使等式成立的算式总数。
【输入】
108
【输出】
15
【数据*】
本题共有10组测试数据,每组10分,共100分,对于所有的n,-30000≤n≤1000000
【问题分析】
题目意思简单,要求在1、2、3….9中填入“+”号“-”号,也可以将数字并成更大的数,使得算式的计算结果为N。题目有九个数字,就有八个空格要添符号(其实是九个,在1前面的符号默认为“+”号),每个空格有三种填法,分别穷举,穷举出一种,计算出结果,如果等于N,就把计数器加一,穷举到结束,输出计数器的结果就行了。这种思想,说起来容易做起来难,特别是在穷举好一种添加符号的方法后,计算结果并不容易,下面就具体说明。

【算法分析】
在实际操作中,把1到9中的8个空档定义成数组a[1..8],其中,a[I]=0,表示这一格不填符号,与下一个数字合并,a[I]=-1,表示这一格填“-”号,赋成-1可以方便编程序,在程序中会有所体现,a[I]=1,表示这一格填“+”号,填好符号,就要开始计算了。因为只有+-号,定义算到目前的结果为ans,定义现在正要加或减的但没定下最终值的数据为ch,k记录ans是要+ch,还是-ch。
然后先把k赋为1(1前面的符号默认为+),ch赋为1,ans赋为0,从第一个符号开始,如果是运算符号,那么ch敲定,ans加上ch*k,ch变成下一个数字,k变成第一个符号-1或1,如果是连接符号,就是a[1]=0,那么ch从1连接成了12,就是ch:=ch*10+2,其他不变,之后看第二个符号,如果是运算符号,那么ch敲定,ans加上ch*k,ch变成下一个数字,k变成第二个符号-1或1,如果是连接符号,那么ch:=ch*10+3就行了,继续看下一个符号。
直到完成最后一个符号的操作后,还要将最后的ans+ch*k,算出结果ans就行了。

【程序】
var
a:array [1..8] of longint;
n,l:longint;
procerejie(h:longint);
vark,ch,ans,i:longint;
begin
if h=9 then
begin
k:=1; ch:=1; ans:=0;
for i:=1 to 8 do
if a[i]=0 then ch:=ch*10+i+1{如果是连接符,连接ch与下一个数}
else
begin
ans:=ans+k*ch;{遇到符号,先完成前一步的加减}
ch:=i+1;{ch变成下一个数}
k:=a[i];{k存储ans与ch的加减关系}
end;
ans:=ans+ch*k;{这步别忘了}
if ans=n then L:=L+1;
end
else
for i:=-1 to 1 do{穷举八个符号位的符号}
begin
a[h]:=i;
jie(h+1);
end;
end;
begin
assign(input,'equal.in'); reset(input);
assign(output,'equal.out'); rewrite(output);
readln(n);
L:=0;
JIE(1);
WRITE(L);
close(input); close(output);
end.

热心网友 时间:2023-10-27 02:20

【背景】早期的省选题;
【难度系数】***(按理说该是送分的)
【算法分析】因未给出数据规模,本人认为深度优先搜索或者宽(广)搜:
模拟 一个个试;
①深搜者,程序加入计数器,末尾出值;
②广搜者,无需判重,外加人工人脑剪枝,eg全是+/-在某些n值下必定不行,跳出后出值;
(鄙人曾试过了,Ac,不知是数据太弱还是算法太强(Oh,shit!这也算算法,O(∩_∩)O~))
【源程序清单】略~请主自行编写;
最后祝学业有成;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
三角蟾应该放在吧台的左前方还是右前方 江西省普通高中学生综合素质优秀自我评价范文 江西省余干中学基础设施 江西中学生综合素质评价怎么写 南昌市有什么高中是可以住校的啊 江西省上高中学校园环境 南昌哪些高中有宿舍 辛未 庚寅 丁巳 辛丑 男命,婚姻怎么样,什么时候才能结婚? 辛未 辛丑 乙酉日 酉时命运如何? 谈谈你对中医的认识 CPU超频从3.5降到3.4 内存频率反而降了 萝卜读音 萝卜怎么读 萝卜怎么读 萝卜如何读 什么样的芙蓉鸟叫得好听 翻毛玉鸟叫的好听嘛 815平方千米加8900平方米等于多少公顷 把照片烤到杯子上的那个机器叫什么?在那能买到?多少钱? 8900公顷>89平方千米吗3080公顷大于308平方千米吗? 位同人,请问谁知道哪里有烤瓷照片制作的机器啊,就是把普通照片印到瓷杯上的? 8900000平方米等于多少平方千米?怎么理解? 8900平方米o5平方千米 8.9平方千米等于多少平米? 相片烤瓷到杯子上能去除吗 890000公顷=()平方千米 链家商业地产租赁+广州市请问链家广州商业地产租赁负责部门人员电话多少_百度问一问 求日剧奇迹餐厅资源 有字幕的!!! 请问在哪里可以快速下载经典日剧<奇迹餐厅>全集? 求 奇迹餐厅 百度云免费在线观看资源 - 信息提示 哪些话一般都不是男人的真心话,请注意识别? pascl大神请进,中犇也可以来看一看 麻烦老师将下面同花顺指标改成选股公式 要求趋势由绿转红选中 你怎么看待《跨界歌王》中窦靖童为周冬雨助阵? 9英语怎么读 9英语到底念啥 什么尖尖填空 哪个城市的人喝酒最厉害? 四行仓库双方伤亡人数 哪个省酒桌文化比较文明的 如何梳理和整合课程教学内容 什么是课程梳理 怎样培养学生梳理课文的能力 语文单元梳理怎么做啊 麻雀 配音演员 麻雀张若昀配音是谁 《麻雀》里唐山海有配音演员吗? 麻雀中李小男的配音者是谁 南宋时期的词分为哪几个阶段?宋词巅峰在哪个阶段? 去梧州玩大概在哪个地方入住酒店好 梧州妇幼保健院附近的酒店? 广西梧州有哪些万豪国际酒店集团下的酒店