早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求高手帮我看下下面我的代码有什么问题,为什么不能完全AC?一本书,中间少了一张纸,剩下的各页码之和为S.已知每张纸有两个相邻页码,编排方式为:(1,2)(3,4)(5,6)……,括号内数字指一

题目详情
求高手帮我看下下面我的代码有什么问题,为什么不能完全AC?
一本书,中间少了一张纸,剩下的各页码之和为S.已知每张纸有两个相邻页码,编排方式为:(1,2)(3,4)(5,6)……,括号内数字指一张纸的正反两页.你的任务是对于输入的S,求这本书原来的总页数T,以及少掉的那两页的页数,A和B.如果找不到缺失的页码,则输出Impossible.
输入要求:
你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据.标准输入设备中有多组测试数据,每组测试数据仅占一行,每行仅包括一个正整数S(1≤S≤5050),代表书的页码总和.当S=0的时候,表示输入结束.每组测试数据与其后一组测试数据之间没有任何空行,第一组测试数据前面以及最后一组测试数据后面也都没有任何空行.
输出要求:
对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中.每组运算结果为三个整数T、A、B,整数之间用一个空格隔开,三个整数分别表示书完整的页码总和和缺失的那一张书纸的正反面两个页码.每组运算结果单独形成一行数据,其行首和行尾都没有任何空格,每组运算结果与其后一组运算结果之间没有任何空行,第一组运算结果前面以及最后一组运算结果后面也都没有任何空行.
下面是我的代码:
#include
using namespace std;
int getsum(int n){
int i;
int sum=0;
for(i=1;i>s&&s!=0){
int find=false;
for(T=102;T>=2;T--){
for(i=1;i
▼优质解答
答案和解析
把“for(T=102;T>=2;T--)”这一句改成“for(T=102;T>=2;T=T-2”试试;
因为T只能是偶数,不能是奇数;T--,则T可能为奇数.调用getsum(T),如果T为奇数,
则“if((getsum(T)-m-n)”这个判断条件不对