(每日一练28822)题目名称:小艺读书

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-05-03 08:25:48

书是人类进步的阶梯。 小艺每周因为工作的原因会选择性的每天多读几页或者少读几页。 小艺想知道一本n页的书她会在周几读完。

第一行输入n(1<=n<=1000); 第二行输入7个整数,分别表示周一~周日的读书页数p(0<=p<=1000)。(不考虑7个整数都为0的情况)

求出每天累计读多少,然后直接计算即可。

n = int(input())
arr = list(map(int,input().split()))
l = (n - 1) % sum(arr)
print(min([i if l < sum(arr[:i + 1]) else 7 for i,v in enumerate(arr)]) + 1)

用求余的方式计算,可以确定计算多少次,如果用循环方式去做,如果n特别大。。。那就很没效率了

n = parseInt(readline())
arr = readline().split(' ').map(x => parseInt(x))
u = Array.from(arr).map((x,y) => eval(arr.filter((i,j) => j <= y).join('+')))
l = (n - 1) % u[6]
print(Array.from(u).map((x,y) => l < x ? y : 7).sort((x,y) => x > y ? 1 : -1)[0] + 1)
...全文
119 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2023-07-05
  • 打赏
  • 举报
回复

弱类型看着就比强类型代码少。。。。

using System;
using System.Collections;
using System.Collections.Generic;
class Program {
    public static void Main() {
        int n = int.Parse(Console.ReadLine().Trim());
        string[] arr = Console.ReadLine().Split(" ");
        List<int> d = new List<int>();
        for (int i = 0 ; i < 7 ; i ++){
            d.Add(int.Parse(arr[i]) + (d.Count > 0 ? d[d.Count - 1] : 0));
        }
        n %= d[6];
        int a = 7;
        for (int i = 6 ; i > -1 ; i --){
            if (d[i] >= n){
                a = i + 1;
            }
        }
        Console.WriteLine(a.ToString());
    }
}

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧