ACM问题 我的代码错哪了?? http://acm.hdu.edu.cn/showproblem.php?pid=3788

http://acm.hdu.edu.cn/showproblem.php?pid=3788#include<iostream>#include<stdio.h>#inc... http://acm.hdu.edu.cn/showproblem.php?pid=3788
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char s[1001];
while(gets(s))
{
if(strcmp(s,"zoj")==0||strcmp(s,"zj")==0)
{
cout<<"Accepted"<<endl;
continue;
}
else
{
int h=strlen(s);
int i,j,k;
int sign=0;
for(i=0;i<(h-3)/2;i++)
{
if(s[i]!=s[(h+3)/2+i])
sign=1;
}
if(sign==0)
cout<<"Accepted"<<endl;
else
{
for(i=0;s[i]!='o';i++);
if(s[i+1]!='z')
cout<<"Wrong Answer"<<endl;
else
{
for(j=i+1;s[j]!='o';j++);
if(s[j+1]!='j')
cout<<"Wrong Answer"<<endl;
else
{
if(s[j+1]=='\0')
cout<<"Accepted"<<endl;
else
{
for(k=j+1;s[k]!='\0';k++);
if(s[k]=='\0')
cout<<"Accepted"<<endl;
else
cout<<"Wrong Answer"<<endl;
}
}
}
}
}
}
return 0;
}
展开
 我来答
呆啊呆啊呆x
2011-03-10 · TA获得超过156个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:107万
展开全部
貌似你连样例都还不能通过哈,觉得你应该至少把样例通过了再说,如果给你说明了你还做题干嘛。

oozoojoooo
这个样例貌似有问题,我这样觉得只这样,对有问题。
1,2,3规则都不符合~~ 不晓得是不是我理解有误哈,
不过据说应该这样做:
1)确定有且只有一个z和j。
2)确定z在j前面。
3)判断zoj和zj的情况。
4)判断xzojx的情况..即前后的o的个数相等,其实判断zoj是判断这个类型的逻辑子集。
5)判断azbjc,看a,b,c是否相等...zj的判断是判断此类的子集。
6)最后据说这判断azbjc 是否有a*b=c这个条件,至于为什么,不知道。...

综合发现第三步可以省略掉,貌似就这几个步骤哈~~
希望村村民
2011-03-09 · TA获得超过1589个赞
知道小有建树答主
回答量:1187
采纳率:100%
帮助的人:976万
展开全部
hdu改数据了。。。
追问
求指教……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fjitap
2011-03-10
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
是,你不知道题目猜数字其实就是用二分法进行猜,不是你一次if就能计算出结果的。要用for循环或者用对数进行计算。
参考代码AC:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,t,s,i,m;
while(cin>>n)
{
t=1;
s=0;
m=n;
for(i=1;n>t;i++){//其实就是一棵树
s+=i*t;
n-=t;
t*=2;
}
s+=n*i;
printf("%.2lf\n",(double)1.0*s/m);
}
return 0;
}
追问
别乱回答哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式