整数拆分 算法。
2015-12-23 01:28
197 查看
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include "stdio.h"
#define N 8
main(){
int i,j,s,sum;
int a
;
int x;
long k=0;
x=2;
printf("%d=%d",N,N); //把独物的一种情况独立展示出来
//穷举法 计算
while(1){
k++; //通过K统计N个数组成的个数
if(k==s*N) break; //k超过统计的个数退出循环
s=1; //S来计算对应位的权
a[0]=k%N; //第1位的值
sum=a[0]; //通过sum累加,后面要与N做比较
if(a[0]==0) continue; //凡是位数上有0的跳过
for(i=1;i<N-1;i++) //通过循环第k种情况个其他位置的值应当是多少
{s*=N; //统计对应的权
a[i]=k/s%N; //计算第i位置的值
if(a[i]==0) break; //凡是位数上有0的跳过,注break这里是直接结束for循环进入while
sum+=a[i]; //累计a[i]的和
if (sum>N) continue; //如果累计的值超过N不必再继续后面。
if (i==x) x++; //x代表通计数字组成的个数且只能累增,后面少于组成个数就可以被筛选掉
// 如果组成的个数开始累增1了,x就做一下标识
if (i+1<x) continue; // 如果组成个数小于当前x则不必再继续后面。
if (sum==N) { //如果sum与N一直,则输出结果
printf("=");
for(j=0;j<i;j++)
printf("%d+",a[j]);
printf("%d",a[j]);
}
}
}
printf("="); //独特的另一种情况展示出来
for(i=0;i<N-1;i++)
printf("1+");
printf("1\n");
}
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include "stdio.h"
#define N 8
main(){
int i,j,s,sum;
int a
;
int x;
long k=0;
x=2;
printf("%d=%d",N,N); //把独物的一种情况独立展示出来
//穷举法 计算
while(1){
k++; //通过K统计N个数组成的个数
if(k==s*N) break; //k超过统计的个数退出循环
s=1; //S来计算对应位的权
a[0]=k%N; //第1位的值
sum=a[0]; //通过sum累加,后面要与N做比较
if(a[0]==0) continue; //凡是位数上有0的跳过
for(i=1;i<N-1;i++) //通过循环第k种情况个其他位置的值应当是多少
{s*=N; //统计对应的权
a[i]=k/s%N; //计算第i位置的值
if(a[i]==0) break; //凡是位数上有0的跳过,注break这里是直接结束for循环进入while
sum+=a[i]; //累计a[i]的和
if (sum>N) continue; //如果累计的值超过N不必再继续后面。
if (i==x) x++; //x代表通计数字组成的个数且只能累增,后面少于组成个数就可以被筛选掉
// 如果组成的个数开始累增1了,x就做一下标识
if (i+1<x) continue; // 如果组成个数小于当前x则不必再继续后面。
if (sum==N) { //如果sum与N一直,则输出结果
printf("=");
for(j=0;j<i;j++)
printf("%d+",a[j]);
printf("%d",a[j]);
}
}
}
printf("="); //独特的另一种情况展示出来
for(i=0;i<N-1;i++)
printf("1+");
printf("1\n");
}
相关文章推荐
- 【leetcode题解】【M】【10】318. Maximum Product of Word Lengths
- hadoop安装包的目录结构
- 315. Count of Smaller Numbers After Self
- POJ 1088 滑雪
- 温伯格技术思想三部曲:颠覆完美软件(4)
- Android动态广播添加权限
- Good Bye2015,Hello 2016
- 阻止元素被选中
- CSS属性(常用的属性)
- iOS.ReactNative-5-make-react-native-to-support-dynamically-update
- 解决一些网站文字不能复制的问题?java应用
- Netty4 HTTP请求参数解析(GET, POST)
- Docker系列三
- 电脑随机数是如何生成的?
- striving for simplicity:the all convolutional net
- cygwin(x64) 下编译 redis
- Java 注解
- C-语言-detail(上)
- Java Script基础(十二) 正则表达式
- 中位数求和 BUAA214 大新闻