C语言实现 IDE:dev c++
算法一
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char Oper[] = "+-";
void PrintAn(int ret, int N) {
printf("sin(%d", ret);
if (ret < N)
{
printf("%c", Oper[ret % 2]);
PrintAn(ret + 1, N);
}
else if (ret == N)
{
int i;
for (i = 0; i < N; ++i)
printf(")");
}
}
void PrintSn(int ret, int n) {
if (ret == 1) {
int i;
for (i = 0; i < n - 1; ++i)
printf("(");
}
PrintAn(1, ret);
//printf("A%d", ret);
printf("+%d", n - ret + 1);
if (ret != n)
printf(")");
if (ret < n)
PrintSn(ret + 1, n);
}
int main()
{
int n;
scanf("%d", &n);
PrintSn(1, n);
return 0;
}
算法二
#include <stdio.h>
void printA(int n, int k)
{
if (n == k)
printf("sin(%d)", n);
else
{
printf("sin(%d", n);
printf(n % 2 == 0 ? "+" : "-");
printA(n + 1, k);
printf(")");
}
}
void printS(int n, int k)
{
if (n == 1)
{
printA(1, n);
printf("+%d", k - n);
}
else
{
printf("(");
printS(n - 1, k);
printf(")");
printA(1, n);
printf("+%d", k - n);
}
}
int main()
{
int N;
scanf("%d", &N);
printS(N, N + 1);
printf("\n");
return 0;
}
算法三
#include<stdio.h>
void An_Output(int n, int t)
{
if(n == t)
{
printf("sin(%d)", t);
return ;
}
char c;
c = t % 2 == 1 ? '+' : '-';
printf("sin(%d%c", t, c);
An_Output(n, ++t);
printf(")");
}
void Sn_Output(int n, int t)
{
// Sn=(...(A1+n)A2+n-1)A3+...+2)An+1
if(n == t)
{
return ;
}
printf("(");
Sn_Output(n, t+1);
if(t != n - 1)
{
printf(")");
}
An_Output(n - t, 1);
printf("+%d", t+1);
}
int main()
{
int n;
scanf("%d", &n);
Sn_Output(n, 1);
if(n!=1)
printf(")");
An_Output(n, 1);
printf("+1\n");
return 0;
}
如果这段代码对您有帮助,希望您可以给猿猿一个赞,谢谢您嘞,code不易,且看且珍惜。