急求解两道不难的C语言编程题目

来源:百度知道 编辑:UC知道 时间:2024/09/21 08:14:06
1,求解某一个正整数的所有分解数算式。要求输出不能重复
比如输入5
则打印
5=4+1 5=3+2 5=3+1+1 5=2+2+1 5=1+1+1+1

2。编程判断某个输入的字符串是否回文(比如 abcba helleh)

谢谢各位朋友。

1
#include <stdio.h>
#include <malloc.h>

int *g_n;
int g_num;

void output()
{
int i=1;
if (g_n[0] != g_num)
{
printf("%d = %d", g_num, g_n[0]);
while(g_n[i]!=0 && i<g_num)
printf(" + %d", g_n[i++]);
printf("\n");
}
}

void decompose(int num, int *n, int max)
{
int i;

if (num<=max)
{
n[0] = num;
output();
}

for (i=(max<num? max: num-1); i>0; i--)
{
n[0] = i;
decompose(num - i, &n[1], i);
}

n[0] = 0;
}

int main()
{
int i;

printf("Please input a integer: ");
scanf("%d", &g_num);

g_n = (int*)malloc(sizeof(int) * g_num);

if (g_n)
{
for (i=0; i<g_num; i++) g_n[i] = 0;