博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVALive5661 UVA668 ZOJ2037 Parliament
阅读量:5822 次
发布时间:2019-06-18

本文共 962 字,大约阅读时间需要 3 分钟。

问题链接:。

问题简述:参见上述链接。

问题分析

  分拆的结果,不应该从1开始。1×x=1。所以应该从2开始。

  分拆的结果可能是2,3,4,5,......,k(各个值互不相等)。

  对于输入的n,减去前k-2项之和后,剩余的值可能小于k+1。这时,需要将剩余的值分配到各个数中,自然从后向前分配。

程序说明:需要注意输出格式。

AC的C++语言程序如下:

/* UVALive5661 UVA668 ZOJ2037 Parliament */#include 
#include
using namespace std;const int N = 100;int ans[N];int main(){ int m, n, i, j; cin >> m; for(int k=1; k<=m; k++) { if(k != 1) cout << endl; cin >> n; // 从左往右放 i = 2; while(n >= i) { ans[i] = i; n -= i; i++; } i--; // 从右往左放 j = i; while(n > 0 && j >= 2) { ans[j--]++; n--; } // 还有剩余 if(n) ans[i]++; // 输出结果 for(j=2; j<=i; j++) { if(j>2) cout << " "; cout << ans[j]; } cout << endl; } return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7563968.html

你可能感兴趣的文章
劝学篇
查看>>
Java设计模式2:简单工厂模式
查看>>
LPC43xx SGPIO Pattern Match Mode
查看>>
交易应用-运行多个SQL声明
查看>>
Android SDK代理服务器解决国内不能更新下载问题
查看>>
Git -- 简介
查看>>
Mybatis注解方法操作数据库
查看>>
理解领域模型Domain Model
查看>>
android:background="@drawable/home_tab_bg"
查看>>
JQuery 获取checkbox被选中的值
查看>>
CSS布局:水平居中
查看>>
【Android】17.5 利用Messenger实现进程间通信(IPC)
查看>>
POJ 2778 DNA Sequence (AC自己主动机 + dp)
查看>>
go--Ubuntu下安装GO LANG,测试输入hello world
查看>>
每天一个linux命令:locate
查看>>
CSS实现水平垂直同时居中的6种思路
查看>>
swift代码排版-参考
查看>>
JS中的prototype
查看>>
2018天猫双11各类目品牌成交额top10排行榜
查看>>
Php导出百万数据的优化
查看>>