支付宝客服兼职:帮帮忙!有两道C语言,帮写一下,谢谢

来源:百度文库 编辑:中科新闻网 时间:2024/05/13 05:40:34
1.在n个一连串的方格内填写字母A或B,但相邻两格内不能都填B。求所有可能的填写方案数。例如,当n=3,可能的方案有AAA,AAB,ABA,BAA,BAB等5种。试求: (1)当n=15时,所有可能的方案数是多少?(2)当n=l0时,包含有8个字母A的方案数共有多少?

2. 其平方等于某两个正整数平方之和的正整数称为弦数。例如,由于:9+16=25, 因此5为弦数。求[121,930]之间:弦数的数目,最小弦数,最大弦数。
希望大家用TC,谢谢

第一个可以运行

float f_sub(int x)
{ int i;
float s=1;
for(i=1;i<=x;i++)
s*=i;
return s;
}
float fct(int m,int n)
{ int k;
k=m-n+1;
if(k<n) return 0;
if(n==0||k==n) return 1;
else return((f_sub(k)/f_sub(k-n))/f_sub(n));
}
main()
{float sum_15=0,sum_10=0,s_8=0;
int i;
for(i=0;i<=15;i++)
sum_15+=fct(15,i);
for(i=0;i<=10;i++)
sum_10+=fct(10,i);
s_8=fct(10,2);
printf("\nsum_15=%.0f\nsum_10=%.0f\ns_8=%.0f",sum_15,sum_10,s_8);
}
第二个也可以运行,但是效率低

#include"stdio.h"
#include"math.h"
int xuan(int x)
{int i,j;
long m,n;
for(i=1;i<x;i++)
for(j=x;j>1;j--)
{ n=i*i+j*j;
m=x*x;
if(m==n) return 1;}
return 0;
}
main()
{ int i,max,min;
int k=0;
max=0;
min=930;
for(i=121;i<=930;i++)
if(xuan(i)==1)
{if(i>max) max=i;
if(min>i) min=i;
k++;}
printf("\nshum=%d\nmax=%d \nmin=%d",k,max,min);
}

没有编译器,用asp写了个

<%
function func(num)
for i=0 to getHalf(num)
select case i
case 0
func = func + 1
case 1
func = func + num
case else
if (num+1)>=(i*2) then
func = func + getSum(num-(i-1)*2)
end if
end select
next
end function

Response.Write("func= " & func(15))

function getSum(num)
getSum = 0
for i = 1 to num
getSum = getSum + i
next
end function

function getHalf(num)
if num mod 2=0 then
getHalf = num/2
else
getHalf = fix(num/2)+1
end if
end function
%>

你要你知道算法,用C写起来很简单的

自己动手就行了

不要太依赖别人,不然是学不会编程的