满意答案
qse9qve2c
2013.08.30
采纳率:57% 等级:11
已帮助:14505人
printf("%d\t",i);
#endif
类似这样的代码,是调试时输出中间值用的,你可以当它不存在
29./*已知 f(n)=f(n-1)+2f(n-2)-5f(n-3),f(0)=1,f(1)=2,f(2)=3,求f(0)+f(1)+…f(30)。*/
#include "stdio.h"
int f(int n)
{
switch(n)
{
case 0:
return 1;
case 1:
return 2;
case 2:
return 3;
default:
return f(n-1)+2*f(n-2)-5*f(n-3);
}
return 0;
}
int main(void)
{
int i,Sum=0;
for(i=0;i<30;i++) Sum+=f(i);
printf("f(0)+f(1)+...+f(30)=%d",Sum);
return 0;
}
30./*已知S1=2, S2=2+4, S3=2+4+6, S4=2+4+6+8,S5=2+4+6+8+10,…,求S=S1+S2+S3+S4 +S5+…+S20的值。*/
#include "stdio.h"
int main(void)
{
int i,Data=0,Sum=0;
for(i=1;i<21;i++)
{
Data+=i*2;
Sum+=Data;
}
printf("S1+S2+...+S20=%d",Sum);
return 0;
}
31./*求出以下分数序列的前35之和,2/1,3/2,5/3,8/5,13/8,21/13,......给出程序结果(保留6位小数)。*/
#include "stdio.h"
int main(void)
{
int i;
double Sum=0.0,Data1=1.0,Data2=2.0,Temp;
for(i=0;i<35;i++)
{
Sum+=Data2/Data1;
Temp=Data2;
Data2+=Data1;
Data1=Temp;
}
printf("2/1+3/2+5/3+8/5+13/8+21/13...=%0.6lf",Sum);
return 0;
}
32./*计算A15值。A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ......(保留10位小数)。*/
#include "stdio.h"
int main(void)
{
int i;
double Data1=1.0;
for(i=0;i<15;i++)
{
Data1=1.0/(Data1+1.0);
}
printf("A15=%0.10lf",Data1);
return 0;
}
33./*求[1,800]之间能被3和8整除的数的个数。*/
#include "stdio.h"
int main(void)
{
int i,Sum=0;
for(i=1;i<=800;i++)
{
if(i%8==0 && i%3==0)
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum++;
}
}
printf("[1,800]之间能被3和8整除的数的个数为",Sum);
return 0;
}
34./*求[2000,20000]之间同时满足除以7余5,除以5余3,除以3余1的整数的个数。*/
#include "stdio.h"
int main(void)
{
int i,Sum=0;
for(i=2000;i<=20000;i++)
{
if(i%7==5 && i%5==3 && i%3==1)
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum++;
}
}
printf("[2000,20000]之间同时满足除以7余5,除以5余3,除以3余1的整数的个数为",Sum);
return 0;
}
28./*[100,999]范围内同时满足以下两个条件的十进制数: ⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数; 求有多少个这样的数? */
#include "stdio.h"
int IsPrime(int n)
{
int i=0;
for(i=3;i
{
if(n%i==0) return 0;
}
return 1;
}
int main(void)
{
int i,Sum=0;
for(i=101;i<=999;i+=2)
{
if(((i%10)+((i/10)%10)==(i/100)) && IsPrime(i))
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum++;
}
}
printf("[100,999]范围内同时满足以下两个条件的十进制数: ⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数; 有%d个",Sum);
return 0;
}
29./*猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都是吃尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩下一个桃子了。问小猴子第一天共摘下了多少个桃子。*/
#include "stdio.h"
int main(void)
{
int i,Sum=1;
for(i=9;i>=1;i--)
{
Sum=(Sum+1)*2;
}
printf("The number of peach is %d in the first day",Sum);
return 0;
}
30./*数列E(1)=E(2)=1,E(n)=(n-1)*E(n-1)+(n-2)*E(n-2) (n>2) 称为E数列,每一个E(n),(n=1,2,…)称为E数。求不超过30000的最大E数的值(注: 是求E<30000的最大E数值)。*/
#include "stdio.h"
int E(int n)
{
if(n<=2) return 1;
else return E(n-1)*(n-1)+(n-2)*E(n-2);
}
int main(void)
{
int i=1,LastE=0,CurrentE=0;
do
{
i++;
LastE=CurrentE;
CurrentE=E(i);
}while(CurrentE<30000);
printf("The number of the Max. E that lass than 30000 is %d.",LastE);
return 0;
}
31./*求7到2156之间的所有奇数的平方和。(保留整数位)*/
#include "stdio.h"
int main(void)
{
int i,Sum=0;
for(i=7;i<2156;i+=2)
{
Sum+=i*i;
}
printf("7到2156之间的所有奇数的平方和为%d.",Sum);
return 0;
}
32./*求出将十进制整数98765432等值转换为二进制形式表示后其中数字1的个数。(提示:模拟人工计算的“2除取余”法*/
#include "stdio.h"
int main(void)
{
int Data=98765432,Sum=0;
while(Data>0)
{
if(Data%2) Sum++;
Data/=2;
}
printf("98765432表示为二进制后其中数字1的个数为%d.",Sum);
return 0;
}
或者
#include "stdio.h"
int main(void)
{
int Data=98765432,Sum=0;
while(Data>0)
{
if(Data&0x01) Sum++;
Data>>=1;
}
printf("98765432表示为二进制后其中数字1的个数为%d.",Sum);
return 0;
}
另外,虚机团上产品团购,超级便宜
01分享举报