AC2656 2022-11-02 09:49 采纳率: 81.8%
浏览 18
已结题

计算行列排序的总人数

题目:计算总人数
题目描述:
探姬同学活跃在各大论坛,QQ群,可谓粉丝众多,他想统计一下自己粉丝的数量,于是召集大家按行列排好队,最后一行有可能不满,但是探姬同学的数学是体育老师教的,他算不出总人数是多少,他要亲自数一下,探姬决定从后往前数,数了一个数后,再也数不下去了,于是重新从后往前数,第二次也没有数完,你能计算出来吗?
输入:
第一行输入三个整数分别为第一次数到的数量和所在的行列位置;
第二行输入三个整数分别为第二次数到的数量和所在的行列位置。
注意:队列的行数列数均大于0,并且小于等于10000;
输出:
如果你能替探姬算出总的粉丝数量,请输出这个数,如果通过给定的输入无法推算出粉丝数量,请输出“sorry!"。
样例输入:
6 3 2
9 2 3
样例输出:
15
样例说明:
第一次数到6是第3行第2列,第二次数到9是第2行第3列,可以推算出如下的站位形式

img

#include <stdio.h>
#include <math.h>
int main(void)
{   //h 行 l列   count 计算总人数   num 数到的数量   
    int hangshu, lieshu, h1, l1, num1, h2, l2, num2;
    int flag, l11, count, num11;
    scanf("%d%d%d%d%d%d", &num1, &h1, &l1, &num2, &h2, &l2);
    
    if (h1 == h2 && h1 != 1)
    {
        printf("sorry!\n");
        return 0;
    }
    if (h1 == h2 && h1 == 1)
    {
        printf("%d\n", num1 + (l1 - 1));
        return 0;
    }
    
    flag = 0;
    for (l11 = l1; l11 >= 1; l11 --)//l1小于l2的情况
        if (l11 == l2)
        {   /*计算列数 将第一次数到的位置平移到与第二次同列的地方
            计算num2 与 平移后新位置的num1即num1 + (l1 - l11)相减
            绝对值结果即列数*/
            lieshu = abs(num2 - (num1 + (l1 - l11)));
            flag = 1;
            break;
        }
    if (flag == 0)//l1大于l2
        for (l11 = l1; ; l11 ++)
            if (l11 == l2)
            {//计算列数 方法同上
                lieshu = abs(num2 - (num1 - (l11 - l1)));
                break;
            }
            
    num11 = num1;
    /*将第一次数到的位置后移直下一行第一列,如果本来就在某一行的第一列
    就不用移动了*/
    num11 -= (lieshu - (l1 - 1));
    hangshu = h1 + num11 / lieshu;
    if (num11 % lieshu != 0)//如果末尾行人数不足一行
        hangshu ++;
    
    /*count等于第一次数过的人数num1加比num1行数小的所有人数加
    与第一次最后数到的人在同一行但列数比它小的所有人*/
    count = num1 + lieshu * (h1 - 1) + (l1 - 1);
      
    printf("%d\n", count);
    return 0;
}

报错:
Expected | Yours
162 | 342

我的代码测试样例是对的,但提交显示答案错误,怎么改这个代码?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月10日
    • 创建了问题 11月2日

    悬赏问题

    • ¥20 关于web前端如何播放二次加密m3u8视频的问题
    • ¥20 spring boot集成mqtt的使用问题
    • ¥15 使用百度地图api 位置函数报错?
    • ¥15 metamask如何添加TRON自定义网络
    • ¥66 关于川崎机器人调速问题
    • ¥15 winFrom界面无法打开
    • ¥30 crossover21 ARM64版本安装软件问题
    • ¥15 mymetaobjecthandler没有进入
    • ¥15 mmo能不能做客户端怪物
    • ¥15 osm下载到arcgis出错