| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:这道题做不出来啊!
只看楼主 加入收藏
BBC小戴
Rank: 1
来 自:广东省东莞市南城区
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-5-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
这道题做不出来啊!
程序代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<cctype>
using namespace std;
double _log10(int n)
{
    return log(n+0.0)/log(10.0);
}
double fac[1000000];
string str;
int len;
int sol()
{
    double sum=0;
    for(int i=0;i<len;)
    {
        if(isdigit(str[i]))
        {
            int num=0;
            for(;i<len&&isdigit(str[i]);i++) num=num*10+str[i]-'0';
            if((i<len&&str[i]=='*')||i==len)
            {
                sum+=_log10(num);
                i++;
                continue;
            }
            else if(i<len&&str[i]=='^')
            {
                i++;
                int f=0;
                for(;i<len&&isdigit(str[i]);i++) f=f*10+str[i]-'0';
                sum+=f*_log10(num);
                i++;
                continue;
            }
            else if(i<len&&str[i]=='!')
            {
                i++;
                sum+=fac[num];
                i++;
                continue;
            }
        }
        else i++;
    }
    return (int) sum+1;
}
int main()
{
    for(int i=1;i<1000000;i++) fac[i]=fac[i-1]+_log10(i);
    char ch;
    while(cin>>ch) str+=ch;
        len=str.size();
        int cnt=sol();
        printf("%d/n",cnt);
    return 0;
}


为什么不可以呢?
2015-05-19 13:25
BBC小戴
Rank: 1
来 自:广东省东莞市南城区
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-5-19
收藏
得分:0 

As soon as you trust yourself, you can be a member of BBC.
2015-05-19 13:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:20 
光说这题做不出来   这题是啥题啊  打哑谜啊

DO IT YOURSELF !
2015-05-19 13:44
BBC小戴
Rank: 1
来 自:广东省东莞市南城区
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-5-19
收藏
得分:0 
回复 3楼 wp231957
Sorry,这道题是tyvj的“乘乘乘!”

As soon as you trust yourself, you can be a member of BBC.
2015-05-19 16:13
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复率低要自己找原因

鬼知道你得  (tyvj的“乘乘乘!”) 是神马东东

DO IT YOURSELF !
2015-05-19 16:31
BBC小戴
Rank: 1
来 自:广东省东莞市南城区
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-5-19
收藏
得分:0 
P1145 乘乘乘!
时间: 1000ms / 空间: 131072KiB / Java类名: Main
背景

EZ_lzh很无聊
描述

他想到了一个问题:计算一个式子的结果的位数。
由于这个问题十分复杂,复杂得连EZ_lzh自己也一点思路都没有,于是他决定将题目变简单一点:计算一个运算符号仅有乘号组成的式子的结果的位数。他在10分钟就解决了问题,就想考考你。但是他打数据打得抓狂了,于是他决定要化简:请你计算一个运算符号有“!”、“^”和“*”的式子的结果的位数。
输入格式

读入一个长度不超过10000的式子。(运算符号仅含有“!”、“^”、“*”)
式子中的数不超过10000。
输出格式

一个数,即这个式子的结果的位数。
测试样例1

输入

5*5!*5^5
输出

7
备注

数据保证不会出现类似a!b!或a^b^c的式子。
n!表示n的阶乘,即n到1的乘积。
a^b表示a的b次幂,即b个a相乘的乘积。
a*b表示a与b的乘积。(废话)
EZ_lzh

As soon as you trust yourself, you can be a member of BBC.
2015-05-19 17:04
快速回复:这道题做不出来啊!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033603 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved