❶ C语言程序怎么写
1)第一位在最高位还是最低位?在最高位无解,在最低位的解如下——
#include"stdio.h"
intmain(intargc,char*argv[]){
inti,k;
for(i=31;i<100;i++)
if(k=i*i,k/1000+k/10%10==12&&k/100%10+k%10==10)
printf("%d",k);
printf(" ");
return0;
}
运行结果:
❷ 用C语言的递归解决分鱼问题
下面代码是我自己写的,看别人代码比较累,所以如果楼主愿意,可以看看下面的代码,我会尽量讲解细致一点。
#include<stdio.h>
//sub(manth,fishleft)参数意义:manth表示第几个人分鱼,fishleft表示他分鱼时获得了多少鱼
//函数的返回结果是第manth个人分鱼时剩余的条数,如manth=5,fishleft=1,则表示一共捕获了3906条鱼。
intsub(intmanth,intfishleft){
if(manth==1){
fishleft=(5*fishleft+1);
printf("manth=%d,fishleft=%d ",manth,fishleft);
returnfishleft;
}
fishleft=5*sub(--manth,fishleft)+1;
printf("manth=%d,fishleft=%d ",manth+1,fishleft);
returnfishleft;
}
intmain(void){
intmanth=5;
intfishleft=1;
printf("%d ",sub(5,1));
return0;
}
//我得到的结果和楼主所给程序运行结果不一致!楼主可以自己计算,如果最后一个人得到的是1条鱼,则他分鱼时应该剩余6条,manth=2时应该剩余6*5+1=31条,manth=3时,应该剩余31*5+1条,最后manth=5,也就是分鱼开始的时候,应该剩余3906条鱼。
//楼主可以用自己的程序测试,当调用sub(2)时得到的是21,而不是31,就能证明该程序应该是用问题的。