华为OD机试题:整数表达为连续自然数之和
题目描述:
一个整数可以由连续的自然数之和来表示,给定一个整数,计算该整数有几种连续自然数之和的表达式,并打印出每一种表达式。
输入描述:
一个目标整数t 1<= t <=1000
输出描述:
该整数的所有表达式和表达式的个数,如果有多种表达式,自然数个数最少的表达式优先输出
每个表达式中按自然数递增输出
在每个测试数据结束时,输出一行"Result:X",其中X是最终的表达式个数
示例
输入:
9
输出:
9=9
9=4+5
9=2+3+4
Result:3
说明:
整数9有三种表达方法:
输入:
10
输出:
10=10
10=1+2+3+4
Result:2
def f(n):#解题想法:现将“n=n”形式记录,再从1到1-9的一半+1每一个数为起点,循环找出累加和等于n的列表,
对结果列表根据长度排序,打印res=1k=1l=[[n]]for i in range(1,int(n/2)+1):ll=[i]sum=ij=i+1while j<n:sum+=jif sum<n:ll.append(j)j+=1if sum==n:ll.append(j)l.append(ll)k += 1breakif sum>n:breakl.sort(key=len) #key可输入方法名for i in l:i = list(map(str, i))a="+".join(i)print(f"{n}={a}")print(f"Result:{k}")#解题想法2:因为按元素个数由小到大输出,那么从大往小走若干个元素的和是否等于m,即可m=int(input())
res=[]
for i in range(m,0,-1):# print(i)sum=0l=[]for j in range(i,m+1):sum+=jl.append(str(j))if sum==m:print(f"{m}="+"+".join(l))res.append(l)breakif sum>m:breakprint(f"Result:{len(res)}")
华为OD机试题:整数表达为连续自然数之和相关推荐
- 华为OD机试题 - 整数分解(JavaScript)
最近更新的博客 华为OD机试题 - 任务总执行时长(JavaScript) 华为OD机试题 - 开放日活动(JavaScript) 华为OD机试 - 最近的点 | 备考思路,刷题要点,答疑 [新解法] ...
- HUAWEI 机试题:整数表达为连续自然数之和(Python解法)
题目描述: 一个整数可以由连续的自然数之和来表示,给定一个整数,计算该整数有几种连续自然数之和的表达式,并打印出每一种表达式. 输入描述: 一个目标整数t 1<= t <=1000 输出描 ...
- HUAWEI 机试题:整数表达为连续自然数之和
- 华为OD机试题 - 数据分类(JavaScript)| 代码+思路+重要知识点
最近更新的博客 华为OD机试题 - 字符串加密(JavaScript) 华为OD机试题 - 字母消消乐(JavaScript) 华为OD机试题 - 字母计数(JavaScript) 华为OD机试题 - ...
- 华为OD机试题 - 找出重复代码(JavaScript)| 包含代码编写思路
最近更新的博客 华为OD机试题 - 字符串加密(JavaScript) 华为OD机试题 - 字母消消乐(JavaScript) 华为OD机试题 - 字母计数(JavaScript) 华为OD机试题 - ...
- 华为OD机试题 - 优选核酸检测点(JavaScript)| 代码+思路+重要知识点
最近更新的博客 华为OD机试题 - 字符串加密(JavaScript) 华为OD机试题 - 字母消消乐(JavaScript) 华为OD机试题 - 字母计数(JavaScript) 华为OD机试题 - ...
- 华为OD机试题 - 最大排列(JavaScript)| 代码,编码思路,解题知识点
最近更新的博客 华为OD机试题 - 字符串加密(JavaScript) 华为OD机试题 - 字母消消乐(JavaScript) 华为OD机试题 - 字母计数(JavaScript) 华为OD机试题 - ...
- 华为OD机试题 - 竖直四子棋(JavaScript)| 包含代码编写思路
最近更新的博客 华为OD机试题 - 字符串加密(JavaScript) 华为OD机试题 - 字母消消乐(JavaScript) 华为OD机试题 - 字母计数(JavaScript) 华为OD机试题 - ...
- 华为OD机试题 - 星际篮球争霸赛(JavaScript)| 包含代码编写思路
最近更新的博客 华为OD机试题 - 字符串加密(JavaScript) 华为OD机试题 - 字母消消乐(JavaScript) 华为OD机试题 - 字母计数(JavaScript) 华为OD机试题 - ...
最新文章
- 22.CSS边框与背景【上】
- vue-cli脚手架(框架)
- 详解 ARM64 内核中对 52 位虚拟地址的支持
- Swift3.0语言教程使用路径字符串
- 判断文件是否为可执行程序
- 轻芒王俊煜:我是如何设计信息流的?
- 如何获取某个标签下所有的元素id_D3库实践笔记之元素定位与数据绑定 |可视化系列33...
- PAT_B_1040_Java(25分)
- solaris10下允许root通过telnet远程登录
- 区块链教程(二):基础概念介绍
- python语言接收信息的内置函数_python接收信息的内置函数是
- 002 selenium 元素定位
- 如何在 macOS Monterey 或更早版本中隐藏或显示 Dock 栏?
- 解决eeglab无法读取.mat文件(读取mat文件报错cannot read .mat file,eeglab error in function pop_editset()at line 445)
- 组合数学1--组合数学简介
- 使用postfix和roundcube搭建webemail
- css+html 嵌套表格做简单网页
- cpu,寄存器,控制器,运算器
- 2020Android大厂高频面试题(字节跳动+阿里,作为Android开发程序员
- 视频编解码之常见GOP结构