[计算机软件及应用]C语言编程
设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的所有四位数abcd.
解法一:
#include
int main()
{
int a,b,c,d,e;
int h,s;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
for(e=2;e<=9;e++)
{
h=a*1000+b*100+c*10+d;
s=b*1000+c*100+d*10+e;
if(h*e==s)
printf("%d\n",h);
}
return 0;
}
解法二:
#include
int main()
{
int a,b,c,d,e,i;
for(i=9999;i>=1000;i--)
{{
a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
}
for(e=2;e<=9;e++)
if(i*e==b*1000+c*100+d*10+e)
printf("%d\n",i);
}
return 0;
}
解法三:
#include
int main()
{
int a,b,c,d,e;
int h,s;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
for(e=2;e<=9;e++)
{
h=a*1000+b*100+c*10+d;
s=b*1000+c*100+d*10+e;
if(h*e==s)
printf("%d\n",h);
}
return 0;
}
(1)某些分数的分子和分母都是二位正整数的真分数具有下列特点:如果将该分数的分子的两位数字相加作分子,而将该分数的分母的两位数字相加作分母,得到的新分子跟原分子相等。例如,63/84=(6+3)/(8+4)。试求具有这样特点的真分子的个数。
#include
int main()
{
int a,b,c,d,s=0;
for(a=1;a<=9;a++)
for(b=1;b<=9;b++)
for(c=1;c<=9;c++)
for(d=1;d<=9;d++)
if((a*10+b)/(c*10+d)==(a+b)/(c+d)&&(a*10+b)
s++;
printf("s=%d",s);
return 0;
}
(2)求[3-1000]之间最大的五个素数之和。
#include
#include
int main()
{
int sum=0;
int i;
int a;
int n=0;
printf("the sum is:");
for(i=1000;n<=5;i--)
{
for(a=0;sqrt(i)>=a;a++)
if(a>=sqrt(i)) {sum=sum+i;n++;}}
printf("%d",sum);
return 0;
}
3)有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13....(即:该数列从第二项开始,其分子是前一项的分子与分母之和,而其分母是前一项的分子),求出这个序列前56项的和。要求:按四舍五入的方式精确到小数点后第两位。?
#include
int main()
{
float f1=2,f2=1,s,t=0,i;
t=t+f1/f2;
for(i=1;i<=55;i++)
{
s=f1;
f1=f1+f2;
f2=s;
t=t+f1/f2;
}
printf("%.4f\n",t);
return 0;
}
(4)所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[1,1000]之间所有同构数之和。
#include
int main()
{
int a,n=0,i,sum=0;
for(i=1;i<=1000;i++)
{
a=i*i;
if(a%10==i||a%100==i||a%1000==i)
{