永发信息网

mathmatic问题 编程问题,麻烦提供代码,能做出来多少算多少

答案:1  悬赏:50  手机版
解决时间 2021-01-03 20:30
  • 提问者网友:辞取
  • 2021-01-03 00:27
(1). 斐波那契数列中的每一项被定义为前两项之和。从1和2开始,斐波那契数列的前十项为:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
考虑斐波那契数列中数值不超过4百万的项,找出这些项中值为偶数的项之和。
(提示:可能用到的函数,用法请自行参照帮助文档:EvenQ,Fibonacci,Total,Sum)
(2). 一个回文数指的是从左向右和从右向左读都一样的数字。最大的由两个两位数乘积构成的回文数是9009 = 91 * 99.
找出最大的有由个三位数乘积构成的回文数。(提示:可能用到的函数,用法请自行参照帮助文档:Reverse,Select,IntegerDigits,Select,Outer)
(3). 2520 是最小的能被1 - 10 中每个数字整除的正整数。最小的能被1 - 20 中每个数整除的正整数是多少?
最佳答案
  • 五星知识达人网友:西岸风
  • 2021-01-03 01:18
#include 
#include 

int palindrome(int number)
{

    int reverse=0,temp=number; 
while(temp)
{
reverse=reverse*10+temp%10; 
temp=temp/10; 
}
return number==reverse?1:0;
}

int Dig3Mul(int number)
{

int counter;
for (counter=100;counter<1000;++counter)
if( (number%counter)==0 && number/counter>=100 &&number/counter<1000)
{
printf("%d=%d*%d\n",number,counter,number/counter);
return 1;
}
return 0;
}

int GetPal()
{

int counter=999999;
while(counter--)
      if(palindrome(counter) && Dig3Mul(counter))
  return counter;
return 0;
}


int Fibonacci(number)
{


int prv=1,next=2,sum=3,ret=2;
while(sum {
prv=next;
next=sum;
sum=prv+next;
if(sum%2==0 && sum ret+=sum;
}
return ret;
}

int gcd(int x, int y)
{

if(x%y==0)
return y;
else
return(gcd(y,x%y));
}

int lcm(int x, int y)
{

return x*y/gcd(x,y);
}

int lcm_n(int number)
{

int counter =1;
int ret=1;
while(counter ret=lcm(ret,counter++)
return ret;
}


int main()
{
   printf("最大的由两个三位数乘积构成的回文数:%d\n",GetPal());
   printf("斐波那契数列中数值不超过4000000值为偶数的项之和:%d\n",Fibonacci(4000000));
   printf("最小的能被1 - 20 中每个数整除的正整数是:%d\n",lcm_n(20));
   return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯