在线编程在线课堂在线测评Anycodes在线编程

编程论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

How to use bs4??
本帖最后由 carry0987 于
Double Queue 问题描述 : The new founded Balkan Investment Group Bank (
John 问题描述 : Little John is playing very funny game
linux-command Linux命令大全搜索工具,内容包含Linux命令
Coati 是一款跨平台的代码查看工具,适用于 C/C++ 和 Java。商业软件。特性:1. 索引
系统可承载海量并发,消息收发确认机制 保障消息必达 系统采用动态智
全平台视频监控,支持安卓苹果以及pcweb,支持海康大华等主流dvr,全部源码以及文档 单聊、群聊、商
如何访问类的私有属性? 下面以 TPathData 为例,
问题:从 XE4 以来,Firemonkey 曲线绘图在移动平台不平滑的问题一直令人诟病,提交到官方的 QC 也是族繁不及备载,官方似乎有意的
操作数据库(RODBC)   odbcConnect(dsn, uid="", p
数据模式:mode函数显示任何对象的模式。常见的单个的
系统可承载海量并发,消息收发确认机制 保障消息必达 系统采用动态智
RabbitMQ与PHP(一) 项
Iease团队扩编预备中,盼望能有Ruby或者java工程师加盟。全职兼职都可以。有爱好的伴侣请与我接洽。 邮件:i
ruby 怎么设置装备摆设GTK2,求教指导下!
#include #include #include #include using namespace std; int main() {
标题如图所示: 有n盏灯,编号1~n。一开端灯都是关着的
成熟的消息收发确认机制,支持万人大群 支持开发自定义的消息sdk接口,扩展性超强 支持单/
成熟的消息收发确认机制,支持万人大群 支持开发自定义的消息sdk接口,扩展性超强 支持单/
1. 注意列表和集合的区别 set 列表表现形式: list_1
Ajax   Ajax即“Asynchronous Javascript And
大师好,我比来在做布谷鸟优
分辨提取A和B图像Harris角点,接下来须要对

[HDU杭电] Hdu 1296 Polynomial Problem-模拟-[解题报告] C++

[复制链接]
发表于 2016-3-26 22:17:52 | 显示全部楼层 |阅读模式
Polynomial Problem


问题描述 :
We have learned how to obtain the value of a polynomial when we were a middle school student. If f(x) is a polynomial of degree n, we can let

Hdu 1296 Polynomial Problem-模拟-[解题报告] C++

Hdu 1296 Polynomial Problem-模拟-[解题报告] C++

If we have x, we can get f(x) easily. But a computer can not understand the expression like above. So we had better make a program to obtain f(x).
输入:
There are multiple cases in this problem and ended by the EOF. In each case, there are two lines. One is an integer means x (0<=x<=10000), the other is an expression means f(x). All coefficients ai(0<=i<=n,1<=n<=10,-10000<=ai<=10000) are integers. A correct expression maybe likes
1003X^5+234X^4-12X^3-2X^2+987X-1000
输出:
For each test case, there is only one integer means the value of f(x).
样例输入:
  1. 3
  2. 1003X^5+234X^4-12X^3-2X^2+987X-1000
复制代码
样例输出:
  1. 264302

  2. Notice that the writing habit of polynomial f(x) is usual such as
  3. X^6+2X^5+3X^4+4X^3+5X^2+6X+7
  4. -X^7-5X^6+3X^5-5X^4+20X^3+2X^2+3X+9
  5. X+1
  6. X^3+1
  7. X^3
  8. -X+1 etc. Any results of middle process are in the range from -1000000000 to 1000000000.
复制代码
思路:一个数学的算术表达式,比较简单的,主要是注意处理头尾的,接着就是耐心打代码了。

代码如下:
  1. #include
  2. #include
  3. #include
  4. using namespace std;

  5. char str[100005],temp;
  6. __int64 top,flag,i,len,sum,s1,s2;

  7. __int64 fun(__int64 x,__int64 y)
  8. {
  9.         int k;
  10.         __int64 sum1=1;
  11.         for(k=1;k<=y;k++)
  12.                 sum1*=x;
  13.         return sum1;
  14. }

  15. int main()
  16. {
  17.         __int64 x;
  18.         while(scanf("%I64d%s",&x,str)!=EOF)
  19.         {
  20.                 s1=s2=0;
  21.                 len=strlen(str);
  22.                 top=-1;
  23.                 sum=0;
  24.                 temp='+';
  25.                 i=0;
  26.                 while(i<=len)
  27.                 {
  28.                         if(str[i]=='+' || str[i]=='-' || str[i]=='/0')
  29.                         {
  30.                                 if(temp=='+')
  31.                                         sum+=s1*fun(x,s2);
  32.                                 else
  33.                                         sum-=s1*fun(x,s2);
  34.                                 s1=s2=0;
  35.                                 flag=0;
  36.                                 temp=str[i];
  37.                                 i++;
  38.                         }
  39.                         else if(str[i]=='X')
  40.                         {
  41.                                 if(s1==0)
  42.                                         s1=1;
  43.                                 i++;
  44.                                 if(str[i]!='^')
  45.                                         s2=1;
  46.                         }
  47.                         else if(str[i]=='^')
  48.                         {
  49.                                 i++;
  50.                                 while(1)
  51.                                 {
  52.                                         if(str[i]=='+' ||str[i]=='-' || str[i]=='/0')
  53.                                                 break;
  54.                                         else
  55.                                                 s2=s2*10+str[i]-'0';
  56.                                         i++;
  57.                                 }
  58.                         }
  59.                         else
  60.                         {
  61.                                 s1=s1*10+str[i]-'0';
  62.                                 i++;
  63.                         }
  64.                 }
  65.                 printf("%I64d/n",sum);
  66.         }
  67.         return 0;
  68. }
复制代码
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复

使用道具 举报

发布主题 上个主题 下个主题 快速回复 返回列表 官方QQ群
在线客服
客 服 中 心
群 机 器 人
网站二维码
收 起 客 服

QQ|Archiver|手机版|小黑屋|Anycodes ( ICP14002806Anycodes在线编程

GMT+8, 2018-11-22 01:09 , Processed in 1.673119 second(s), 71 queries .

Powered by Anycodes

© 2001-2013 吉林市群龙科技有限公司 Inc.

快速回复 返回顶部 返回列表