CSDN=>FAQ=>FAQ 展示
  • 问题内容:浙江大学ACM题库2705
  • 原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=4660694
  • 所属论坛:数据结构与算法     审核组:其他
  • 提问者:languagec     解决者:mathe
  • 感谢:mathe
  • 关键字:专题开发/技术/项目 数据结构与算法 count int long f1 f2 part1 part2 f0 maxcount num1
  • 答案:

    http://acm.zju.edu.cn/show_problem.php?pid=2705

    #include "stdio.h"
    #include "stdlib.h"
    #include "math.h"
    int Exec(int num,int extra)
    {
    int end=num/2;
    int part1,part2;
    int temp,count;
    int maxcount=0;
    for(int i=ceil(num/3);i<=end;i++)
    {
    part1=i;
    part2=num-part1;
    count=0;
    while(part1!=part2)
    {
    if(2*part1 <part2)
    {
    count=0;
    break;
    }
    else
    {
    count+=part1;
    part2=part2-part1;

    temp=part2;
    part2=part1;
    part1=temp;
    }
    }
    if(part1==part2) count+=part1;
    maxcount=(maxcount>count?maxcount:count);
    }
    return maxcount*extra;
    }

    int main()
    {
    int m,n;
    int num1,num2;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
    num1=Exec(m,n);
    num2=Exec(n,m);
    printf("%d\n",num1>num2?num1:num2);
    }
    return 0;
    }
    ---------------------------------------------------------------

    int f0,f1,f2;
    int max=(m>n)?m:n;
    f0=1,f1=1;
    do{
       f2=f1+f0;
       f0=f1;f1=f2;
    }while(f2<max);
    while(m%f2!=0&&n%f2!=0){
       f2=f1;f1=f0;
       f0=f2-f1;
    }
    printf("%lld",(long long)m*n-(long long)m*n/f2);

  • 评价: 有价值 给朵鲜花(73) 无价值 扔个鸡蛋(38)
相关FAQ
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo