一个数学问题
来源:互联网 发布:linux mount无权限 编辑:程序博客网 时间:2024/06/06 05:22
代码实现:
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
unsigned long sum(vector<unsigned long>& vec,unsigned long k)
{
unsigned long sum = 0;
for (unsigned long i = 1; i <= k; ++i)
{
sum += vec[i];
}
return sum;
}
void check_end(vector<unsigned long>& vec,unsigned long i,unsigned long n)
{
if (i > 1)
{
if (vec[i] > n)
{
vec[i-1]++;
check_end(vec,i-1,n);
vec[i] = vec[i-1];
}
}
}
void print_num(vector<unsigned long>& vec)
{
vector<unsigned long>::size_type i;
for (i = 1; i < vec.size(); ++i)
{
cout << vec[i] << " ";
}
cout << endl;
}
int main(int argv,char* argc[])
{
unsigned long n,k;
cout << "input n " << endl;
cin >> n ;
for(k=1;k<n;k++)
{
unsigned long m = (n/k) +1;
while (k > n)
{
cout << "input error,please input again:" << endl;
cin >> n >> k;
}
unsigned long num = 0;
vector<unsigned long> vec;
for (unsigned long i = 0; i <= k; i++)
{
vec.push_back(1);
}
if (n == sum(vec,k))
{
num++;
print_num(vec);
}
while (vec[1] <= m)
{
vec[k]++;
check_end(vec,k,n);
if (n == sum(vec,k))
{
num++;
print_num(vec);
}
}
cout << "the number is: " << num << endl;
}
}
- 一个数学问题
- 一个数学期望问题
- acm 一个数学问题
- 1078:一个数学问题
- 一个数学排列问题
- 请教一个数学问题!
- 一个数学问题
- 一个数学问题
- 一个数学小问题
- 一个数学问题
- 问题 J : 一个数学问题
- 一个简单的数学问题
- 一个奇奇怪怪的数学问题
- 对一个简单数学问题的浮想
- 一个组合数学的问题 小朋友抢座位
- 一个用C语言实现的数学问题
- 一个完全超出数学一切能力的问题
- 在数学中一个非凸的最优化问题
- Oracle10G如何切换数据库登录
- SpringMVC 中整合JSON、XML视图二
- How to poke around the sqlite3 databases
- %5程序员
- 从汇编层面深度剖析C++虚函数
- 一个数学问题
- asp.net 把sql表中数据生成为insert语句
- ListControl用法总会(1)
- Abstract Factory
- 转:VS2010和VS2008 KB2465361之后,MFC静态链接 EXE体积变大问题
- C/C++ 笔试、面试题目大汇总
- 安装 mysqldb for python
- linux文件时间(atime,mtime,ctime)辨析
- Windows XP权限设置详解