满足特异条件的数列
2017-05-22 21:17
627 查看
输入 m 和 n(20>=m>=n>0)求出满足以下方程式的正整数数列i1,i2,........,in,使得:i1 + i2 + ...... +in = m,且i1>=i2>=.....>=in, 例如:当n=4,m=8时,将得到如下五个数列:
5 1 1 1 4 2 1 1 3 3 1 1 3 2 2 1 2 2 2 2
#include<stdio.h>
#define NUM 10
int i[NUM];
int main()
{
int sum,n,total,k,flag,count=0;
printf("Please enter requried terms(<=10):");
scanf("%d",&n);
printf(" their sum:");
scanf("%d",&total);
sum=0;
k=n;
i
=1;
printf("There are following possible series:\n");
while(1)
{
if(sum+i[k]<total)
{
if(k<=1)
{
i[1]=total-sum;
flag=1;
}
else
{
sum+=i[k–];
i[k]=i[k+1];
continue;
}
}
else
if(sum+i[k]>total||k!=1)
{
sum-=i[++k];
flag=0;
}
else
flag=1;
if(flag)
{
printf("[%d]:",++count);
for(flag=1;flag<=n;++flag)
printf("%d",i[flag]);
printf("\n");
}
if(++k>n)
break;
sum-=i[k];
i[k]++;
}
}
5 1 1 1 4 2 1 1 3 3 1 1 3 2 2 1 2 2 2 2
#include<stdio.h>
#define NUM 10
int i[NUM];
int main()
{
int sum,n,total,k,flag,count=0;
printf("Please enter requried terms(<=10):");
scanf("%d",&n);
printf(" their sum:");
scanf("%d",&total);
sum=0;
k=n;
i
=1;
printf("There are following possible series:\n");
while(1)
{
if(sum+i[k]<total)
{
if(k<=1)
{
i[1]=total-sum;
flag=1;
}
else
{
sum+=i[k–];
i[k]=i[k+1];
continue;
}
}
else
if(sum+i[k]>total||k!=1)
{
sum-=i[++k];
flag=0;
}
else
flag=1;
if(flag)
{
printf("[%d]:",++count);
for(flag=1;flag<=n;++flag)
printf("%d",i[flag]);
printf("\n");
}
if(++k>n)
break;
sum-=i[k];
i[k]++;
}
}
相关文章推荐
- 满足特异条件的数列
- 一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N+1
- 动态规划--求满足条件的数列
- HDU 4371 AliceBob之生成数列直到大于n或者小于等于S(i-2)-思维-(由已知条件推最优步骤)
- 查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数。
- 快速寻找满足条件的两个数
- Linux下的C语言编程——查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数
- 第五章、寻找满足条件的两个或多个数
- 快速选择满足条件的两个数
- 移植uc/os满足的条件
- 安装11g RAC Clustware 前可以用命令进行检查所有条件是否满足
- 查询数据库中满足条件的特定行数据
- 快速寻找满足条件的两个数
- HTTP所承载的货物(图像、文本、软件等)要满足的条件
- java基础学习之——子类重写(覆盖)父类的方法必须满足的条件
- 异步发送相关参数 producer.type async/sync 默认是sync 当满足以下其中一个条件的时候就触发 发送 batch.num.messages 异步发送 每次批量发送的条目
- 快速寻找满足条件的两个数
- 找出满足条件数对的个数
- 程序员面试100题之十:快速寻找满足条件的两个数
- mongodb查询部分满足条件的列