解决这类问题可以使用 回溯 算法,代码如下:
#include <stdioh>#include <stdlibh>
#define M 6 // 候选数字个数
#define N 5 // 组合后数字位数
int check(int result[], int i)
{
for (int j = 0; j < N; j++)
if (result[j] == i)
return 0;
return 1;
}
int list(int numbers[], int l, int result[], int count)
{
if (l >= N) {
// 将各位数组合成一个数
int num = 0;
for (int i = 0; i < N; i++) {
num = num 10 + numbers[result[i]];
}
// 判断这个数是否能被 75 整除
if (num % 75 == 0) {
printf("%d\n", num);
count++;
}
return count;
}
for (int i = 0; i < M; i++) {
if (!check(result, i)) {
continue;
}
result[l] = i;
count = list(numbers, l + 1, result, count);
result[l] = -1;
}
return count;
}
int main()
{
int numbers[M] = { 1, 2, 5, 7, 8, 9 };
int result[N] = { -1, -1, -1, -1, -1 };
int count = list(numbers, 0, result, 0);
printf("共有%d个\n", count);
system("pause");
return 0;
}
运行结果:
#include <stdioh>
#include <stdlibh>
#define stacksize 100
#define OK 1
typedef struct
{char top;
char base;
}Stack;
int init_stack(Stack s)
{sbase=(Stack )malloc(stacksizesizeof(Stack));
if(!sbase) exit(0);
stop=sbase;
return OK;
}
int Push(Stack s,int e)
{stop++=e;
return OK;
}
int Pop(Stack s)
{int e;
stop--;
e=stop;
return e;
}
int main(int argc, char argv[])
{int N,M;
int i,j,k,sub;
Stack S;
init_stack(S);
printf("Please input a number:");
scanf("%d",&N);
printf("\ninput a number of you want to change:");
scanf("%d",&M);
while(N!=0)
{i=N/M;
j=N%M;
Push(S,j);
N=i;
}
while(Stop!=Sbase)
{k=Pop(S);
printf("%d",k);
}
system("PAUSE");
return 0;
}
#include <stdioh>
#include<stdlibh>
#include<timeh>
int InArray(int a[],int N,int data)/判断data是否在数组a[N]中是则返回1,否则返回0/
{
int i;
for(i=0;i<N;i++)
if(data==a[i])
return 1;
return 0;
}
int main(void)
{
int i,j=1,temp,a[8]={0};
srand( (unsigned)time( NULL ) ); /保证每次生成的随机数不相同/
a[0]=rand()%8+1; /数组第一项/
for(i=1;i<8;i++)
{
temp=rand()%8+1;
if(InArray(a,8,temp))//当产生的随机数已存在
{i--;continue;}
else
a[j++]=temp;
}
for(i=0;i<8;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
以上就是关于算法编程:用c语言实现全部的内容,包括:算法编程:用c语言实现、请帮忙用C语言实现这个算法、C语言写个算法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)