博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-2601 An easy problem
阅读量:5862 次
发布时间:2019-06-19

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

  题意:是将一个数 N 分解成 i * j + i + j 有多少种分解方式。

  思路:以 i 作为一个维度,j 作为第二维度进行循环,则 N = i * j + i + j = i * ( j + 1 ) + i ; 当 j = j + 1 时 N' = i * ( j + 1 )  + i + j + 1 = N + i + 1; 所以只要进行一为循环就可以了,判定 ( N - i ) % ( i + 1 ) == 0 ? 就可以了。

  代码:

#include 
#include
#include
#include
#include
using namespace std; int main() {
int T; long long N; scanf( "%d", &T ); while( T-- ) {
scanf( "%I64d", &N ); long long lim = ( long long )sqrt( double ( N + 1 ) ) - 1, cnt = 0; for( long long i = 1; i <= lim; ++i ) {
if( ( N - i ) % ( i + 1 ) == 0 ) {
cnt++; } } printf( "%I64d\n", cnt ); } return 0; }

 

转载于:https://www.cnblogs.com/Lyush/archive/2011/12/02/2272650.html

你可能感兴趣的文章
团队展示(I know)
查看>>
南阳OJ开等问题
查看>>
理解 Redis(5) - 哈希值
查看>>
OC-Category
查看>>
课后作业1
查看>>
【Node.js】Stream(流)的学习笔记
查看>>
Django 过滤器 、日期格式化、数学运算
查看>>
【总结整理】关于写前端页面小技巧
查看>>
加班是一种坏的工作方式
查看>>
java===java基础学习(6)---流程控制,for,if,switch,continue,break
查看>>
使用Node搭建reactSSR服务端渲染架构
查看>>
Android下VideoView的研究
查看>>
【Devops】【docker】【CI/CD】3.Jenkins+GitLab+docker+springboot 实现自动化部署
查看>>
网络数据传输需要注意的两个问题
查看>>
Stage6--Python简单爬虫
查看>>
ENVI显示GDAL创建GeoTiff文件的一个问题及其思考
查看>>
ES6新特性
查看>>
python unittest框架中doCleanups妙用
查看>>
如何学习cocos2d-x
查看>>
在Word 2007中添加参考文献及其引用的方法
查看>>