AB计算器及程序

原创 2006年06月23日 15:27:00
AB计算器
程序文件名: ab.cpp/ab.pas/...
  南开ACM协会的一位元老设计了一种特殊的计算器。这个计算器只有四个键(A,B,+,-)
  计算器显示的数值开始为c
  按一下"+"然后按一下"A",计算器显示的数值增加 a
  按一下"-"然后按一下"A",计算器显示的数值减少 a
  按一下"+"然后按一下"B",计算器显示的数值增加 b
  按一下"-"然后按一下"B",计算器显示的数值减少 b
  请问至少需要按多少下A键才能让计算器显示的值显示为0
输入(请使用标准输入输出,而不要读写文件)
  输入包含三个正整数 a b c ,以空格隔开,满足 0<a<2^95 0<b<2^95 0<c<2^95 a b 分别表示A键和B键的对应数值, c 表示计算器显示的初始值。(2^95 表示295次幂
输出(请使用标准输入输出,而不要读写文件)
  输出只有一个数,即为 A 键被按的次数的最小值(我们确保输入的情况都有对应的答案
样例输入1
样例输出1
7 12 8
4
样例输入2
样例输出2
10549830 6549835 5
140969

 

#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
//#include <math.h>
#include "math.h"

 

void main()
{
    double a,b,c;
 int j=0;
 int di=0,dj;
 int i=0;
 bool accc=false;
 bool acc=false;
    double temp;
 bool flag=false;
 int times=1000000;
 cout<<"输入三个数字a b c:"<<endl;
 cin>>a>>b>>c;
 for( i=0;i<100000&&!flag;i++) ///+ +
 {
  for( j=0;j<100000&&!flag;j++)
  {
   if((i*a+j*b)==c)
    { times=i;  di=i;  dj=j; flag=true; }
   if((i*a+j*b)>c) break;
  }
  if(i*a>c)
   break;
 }
 flag=false;
 cout<<"2============================="<<endl;
 for(i=0;i<times&&!flag;i++) //+ -
 {
        temp=i*a;
  acc=false;
  accc=false;
  for( j=0;j>-300000&&!flag;j--)
  {
   if((temp+j*b)>c&&!acc)//jiasu acc
   {
    j=j-3000;
    continue;
   }
   else if(!acc)
   {
    acc=true;
    j=j+3000;
   }
         
   if((temp+j*b)>c&&!accc)//加速accc
   {
    j=j-600;
    continue;
   }
   else if(!accc)
   {
    accc=true;
    j=j+600;
   }


   if((temp+j*b)==c)
    if(i<times)
    { times=i; di=i;  dj=j;  if(!flag) cout<<"成功计算出一个了!"<<endl;flag=true;}
   if((temp+j*b)<c)
            break;
  }
      if((times/100)!=0)
     if((i)%(times/100)==99)
    cout<<1+(i)*100/times<<"%"<<endl;
 }
 flag=false;
 cout<<"3============================="<<times<<endl;
 for(i=0;i>-times&&!flag;i--)//- +
 {
  acc=false;
  accc=false;
  temp=i*a;
  for( j=0;j<1000000&&!flag;j++)
  {
           if((temp+j*b)<c&&!acc)//加速acc
   {
    j=j+20000;
    continue;
   }
   else if(!acc)
   {
    acc=true;
    j=j-20000;
   }
           
   if((temp+j*b)<c&&!accc)//加速accc
   {
    j=j+2000;
    continue;
   }
   else if(!accc)
   {
    accc=true;
    j=j-2000;
   }


   if((temp+j*b)==c)
    if(abs(i)<times)
    {  times =abs(i); di=i;  dj=j; if(!flag) cout<<"成功计算出一个了!"<<endl;flag=true;}
    if((temp+j*b)>c)
      break;
  }
  if((times/100)!=0)
          if((-i)%(times/100)==99)
        cout<<(-i)*100/times<<"%"<<endl;
 }
 cout<<"进入第四种算法"<<endl;
 for(i=0;i>-times&&!flag;i--)//- -
 {
  temp=i*a;
  acc=false;
  for( j=0;j>-times&&!flag;j--)
  {
   if((temp+j*b)>c&&!acc)
   {
    j=j-3000;
    continue;
   }
   else if(!acc)
   {
    acc=true;
    j=j+3000;
   }

   if((temp+j*b)==c)
    if((abs(i))<times)
    { times=abs(i); di=i;  dj=j;  flag=true;}
   if((temp+j*b)<c)
    break;
  }
   if((temp+j*b)<c)
    break;
   if((times/100)!=0)
        if((-i)%(times/100)==99)
          cout<<(-i)*100/times+1<<"%"<<endl;
 }
 
    if(di)
   cout<<"i= "<<di<<" j= "<<dj<<endl;
    getchar();
}

             

 

python小程序-简易计算器

Question : 实现加减乘除及括号优先级解析。 input:”1 - 2 * (3 + 5)” output : -15#!/usr/bin/env python3 # ...
  • Later_Fall
  • Later_Fall
  • 2017年08月21日 09:58
  • 335

单片机: 简易计算器的实现(键盘)

利用矩阵键盘实现一个简易的计算器。 为了简化问题,我们假设只支持小于100的非负整数之间的加、减、乘的运算,并且支持连续运算(结果的数值可以再进行运算)。 本程序中C为加号,D为减号,E为乘号,F...
  • NK_test
  • NK_test
  • 2015年12月27日 19:51
  • 6610

模拟计算器

数据结构的课程设计。。 模拟计算器。。写的很挫T T。 #include"cstdlib" #include"cstdio" #include"cstring" #include"cmath...
  • wdcjdtc
  • wdcjdtc
  • 2014年06月22日 15:01
  • 1075

ab 工具安装

最简单的方法:yum install httpd-tools安装成功后直接敲运行 ab 即可
  • maray
  • maray
  • 2016年08月10日 15:00
  • 525

小程序--计算器demo

微信之父张小龙,从公布小程序到现在已经过去 好久了,在这里我就不多说什么了,我们直接直奔主题。今天给大家说的是微信小程序实现计算器,废话不多说,直接上代码。 list.wxss代码: .conte...
  • qq_27707513
  • qq_27707513
  • 2016年11月12日 21:52
  • 1594

微信小程序学习之路04-简易的计算器

今天继续玩一些微信小程序的api来做例子,感觉自己可能创造力不很足,只能模仿着别人的例子来做一个自己的计算器了。老规矩,github源码地址我会附在文章末尾,供大家参考。用微信开发者工具新建的项目,i...
  • shouldnotappearcalm
  • shouldnotappearcalm
  • 2017年01月12日 20:21
  • 2719

微信小程序开发—项目实战之计算器开发

就像学习一门开发语言首先会写出“Hello World”一样,学习开发一个应用首先得写出一个“计算器”,这也是开发者的入门必经之路。想当年我学习C/C++也是从一个计算器入门而后一往无前的。小程序的第...
  • anda0109
  • anda0109
  • 2016年11月27日 21:01
  • 15736

Java小程序之--计算器

Java小程序之–计算器 每个学习编程的人都会在成为大牛的路上编写出许多小程序。自学Java一段时间后准备写一个非控制台的应用程序,个人选择了计算器,目标是类似windows系统计算器,但只...
  • CAU_K_O
  • CAU_K_O
  • 2016年11月28日 10:51
  • 1829

简单的JAVA小程序(计算器)

只是自我的学习记录,里面可能有许多的缺陷。 * To change this license header, choose License Headers in Project Properties...
  • ningmeng1992
  • ningmeng1992
  • 2015年10月18日 13:07
  • 529

纯C语言写计算器界面

纯C语言写计算器界面,GDI绘制控件,HOOK拦截键盘按键。 主文件源码预览: // Calculator.cpp : 定义应用程序的入口点。 // #include "stdafx.h" ...
  • goosdy
  • goosdy
  • 2013年04月04日 21:40
  • 3194
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AB计算器及程序
举报原因:
原因补充:

(最多只允许输入30个字)