c语言 编程 (第二题用递归)

1.编写一个函数,选出能被3整除且至少一位是5的两位数,用主函数调用这个函数,并输出所有这样的两位数。

2.小明妈妈给他买了若干块巧克力,小明第一天吃了一半,还不过瘾,又多吃了一块,第二天又将剩下的巧克力吃掉一半,又多吃一块,以后每天都吃了前一天剩下的一半零一块。到第10天再想吃时,只剩下一块了。编程计算小明妈妈总共给小明买了多少块巧克力?

第一题
#include<stdio.h>

int numbers();

void main(){numbers();}

int numbers(){
int i=3;
for(;i<100;i+=3) if(5==i%10||5==i/10) printf("%d ",i);
}
第二题
#include<stdio.h>

int cho(int);

void main(){ printf("%d\n",cho(1));}

int cho(int y){/*返回第y天吃之前的数量*/
if(10==y) return 1;
return (cho(y+1)+1)*2;
}

参考资料:俺的大脑

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-18
第一题简单:
#include<stdio.h>

void main()
{
int a,b;
int i;

for (i = 10; i<100; i++)
{
a = i/10;
b = i%10;

if( ((a+b)%3==0)
&& (a== 5 || b==5) )
{
printf("%d ",i);
}
}
}
第2个回答  2009-04-18
#include<iostream>
using namespace std;

bool f(int );
int main()
{
for(int i=15;i<96;i+=5)
{
if(f(i)) cout<<i<<' ';
}
cout<<endl;

return 0;
}
bool f(int x)
{
if(x%3==0)
{
while(x>0)
{
if(x%10==5)
return true;
x/=10;
}
}
return false;
}
//////////////////////////////////////////////////////
#include<iostream>
using namespace std;

int f(int );
int main()
{
cout<<f(10);

return 0;
}
int f(int x)
{
if(x==1) return 1;

return (f(--x)+1)*2;
}
第3个回答  2009-04-18
这么简单的题还跑网上问,把我们当免费劳动力了!!
相似回答