Code如下 , 希望大神幫忙
#include<iostream>
#include<string.h>
using namespace std;
int main(){
int Numbers;
int x,y,z,w,n,m;
char action[100000];
cin>>Numbers;
while(Numbers>=0){
Numbers--;
int temp,poi=0,flag=0;
cin>>x>>y>>z>>w>>n>>m;
cin.ignore();
cin.getline(action,100000);
long len=strlen(action);
for(int i=0;i<len;i++){
if(action[i]>='0'&&action[i]<='4')
{
temp=action[i]-'0';
m=m+poi;
if(m<=0)
flag=1;
switch(temp)
{
case 0:
break;
case 1:
m=m+x;
break;
case 2:
m=m+y;
break;
case 3:
m=m-z;
break;
case 4:
{
m=m-w;
poi=poi-n;
break;
}
}
}
}
if(flag==1)
cout<<"bye~Rabbit"<<endl;
else
cout<<m<<"g"<<endl;
}
return 0;
}
Code如下 , 希望大神幫忙
#include
#include
using namespace std;
int main(){
int Numbers;
int x,y,z,w,n,m;
char action[100000];
cin>>Numbers;
while(Numbers>=0){
Numbers--;
int temp,poi=0,flag=0;
cin>>x>>y>>z>>w>>n>>m;
cin.ignore();
cin.getline(action,100000);
long len=strlen(action);
for(int i=0;i<len;i++){
if(action[i]>='0'&&action[i]<='4')
{
temp=action[i]-'0';
m=m+poi;
if(m<=0)
flag=1;
switch(temp)
{
case 0:
break;
case 1:
m=m+x;
break;
case 2:
m=m+y;
break;
case 3:
m=m-z;
break;
case 4:
{
m=m-w;
poi=poi-n;
break;
}
}
}
}
if(flag==1)
cout<<"bye~Rabbit"<<endl;
else
cout<<m<<"g"<<endl;
}
return 0;
}
m=m+poi;
中毒體重會越來越輕
應該要扣掉 m=m-poi;
case 4 poi=poi-n;
中毒會累加
應該要加上 poi=poi+n;
Code如下 , 希望大神幫忙
#include
#include
using namespace std;
int main(){
int Numbers;
int x,y,z,w,n,m;
char action[100000];
cin>>Numbers;
while(Numbers>=0){
Numbers--;
int temp,poi=0,flag=0;
cin>>x>>y>>z>>w>>n>>m;
cin.ignore();
cin.getline(action,100000);
long len=strlen(action);
for(int i=0;i<len;i++){
if(action[i]>='0'&&action[i]<='4')
{
temp=action[i]-'0';
m=m+poi;
if(m<=0)
flag=1;
switch(temp)
{
case 0:
break;
case 1:
m=m+x;
break;
case 2:
m=m+y;
break;
case 3:
m=m-z;
break;
case 4:
{
m=m-w;
poi=poi-n;
break;
}
}
}
}
if(flag==1)
cout<<"bye~Rabbit"<<endl;
else
cout<<m<<"g"<<endl;
}
return 0;
}
m=m+poi;
中毒體重會越來越輕
應該要扣掉 m=m-poi;
case 4 poi=poi-n;
中毒會累加
應該要加上 poi=poi+n;
m=m+poi //因為poi 是 -n 所以這兩個是正確的判斷式,還是謝謝您抽空幫我看^^
我用DEVC++ 跑出來答案是正確的 不知道為何跑測試是錯的...
Code如下 , 希望大神幫忙
#include
#include
using namespace std;
int main(){
int Numbers;
int x,y,z,w,n,m;
char action[100000];
cin>>Numbers;
while(Numbers>=0){
Numbers--;
int temp,poi=0,flag=0;
cin>>x>>y>>z>>w>>n>>m;
cin.ignore();
cin.getline(action,100000);
long len=strlen(action);
for(int i=0;i<len;i++){
if(action[i]>='0'&&action[i]<='4')
{
temp=action[i]-'0';
m=m+poi;
if(m<=0)
flag=1;
switch(temp)
{
case 0:
break;
case 1:
m=m+x;
break;
case 2:
m=m+y;
break;
case 3:
m=m-z;
break;
case 4:
{
m=m-w;
poi=poi-n;
break;
}
}
}
}
if(flag==1)
cout<<"bye~Rabbit"<<endl;
else
cout<<m<<"g"<<endl;
}
return 0;
}
m=m+poi;
中毒體重會越來越輕
應該要扣掉 m=m-poi;
case 4 poi=poi-n;
中毒會累加
應該要加上 poi=poi+n;
m=m+poi //因為poi 是 -n 所以這兩個是正確的判斷式,還是謝謝您抽空幫我看^^
我用DEVC++ 跑出來答案是正確的 不知道為何跑測試是錯的...
我直接用你程式碼執行跑出這個
您的答案為: -88g 正確答案為: bye~Rabbit
您的答案為: -16g 正確答案為: bye~Rabbit
Code如下 , 希望大神幫忙
#include
#include
using namespace std;
int main(){
int Numbers;
int x,y,z,w,n,m;
char action[100000];
cin>>Numbers;
while(Numbers>=0){
Numbers--;
int temp,poi=0,flag=0;
cin>>x>>y>>z>>w>>n>>m;
cin.ignore();
cin.getline(action,100000);
long len=strlen(action);
for(int i=0;i<len;i++){
if(action[i]>='0'&&action[i]<='4')
{
temp=action[i]-'0';
m=m+poi;
if(m<=0)
flag=1;
switch(temp)
{
case 0:
break;
case 1:
m=m+x;
break;
case 2:
m=m+y;
break;
case 3:
m=m-z;
break;
case 4:
{
m=m-w;
poi=poi-n;
break;
}
}
}
}
if(flag==1)
cout<<"bye~Rabbit"<<endl;
else
cout<<m<<"g"<<endl;
}
return 0;
}
m=m+poi;
中毒體重會越來越輕
應該要扣掉 m=m-poi;
case 4 poi=poi-n;
中毒會累加
應該要加上 poi=poi+n;
m=m+poi //因為poi 是 -n 所以這兩個是正確的判斷式,還是謝謝您抽空幫我看^^
我用DEVC++ 跑出來答案是正確的 不知道為何跑測試是錯的...
我直接用你程式碼執行跑出這個
您的答案為: -88g 正確答案為: bye~Rabbit
您的答案為: -16g 正確答案為: bye~Rabbit
你最後判斷
if(flag==1)有問題
還有while(Numbers>=0) 這段也有問題
你會多算一次
Code如下 , 希望大神幫忙
#include
#include
using namespace std;
int main(){
int Numbers;
int x,y,z,w,n,m;
char action[100000];
cin>>Numbers;
while(Numbers>=0){
Numbers--;
int temp,poi=0,flag=0;
cin>>x>>y>>z>>w>>n>>m;
cin.ignore();
cin.getline(action,100000);
long len=strlen(action);
for(int i=0;i<len;i++){
if(action[i]>='0'&&action[i]<='4')
{
temp=action[i]-'0';
m=m+poi;
if(m<=0)
flag=1;
switch(temp)
{
case 0:
break;
case 1:
m=m+x;
break;
case 2:
m=m+y;
break;
case 3:
m=m-z;
break;
case 4:
{
m=m-w;
poi=poi-n;
break;
}
}
}
}
if(flag==1)
cout<<"bye~Rabbit"<<endl;
else
cout<<m<<"g"<<endl;
}
return 0;
}
m=m+poi;
中毒體重會越來越輕
應該要扣掉 m=m-poi;
case 4 poi=poi-n;
中毒會累加
應該要加上 poi=poi+n;
m=m+poi //因為poi 是 -n 所以這兩個是正確的判斷式,還是謝謝您抽空幫我看^^
我用DEVC++ 跑出來答案是正確的 不知道為何跑測試是錯的...
我直接用你程式碼執行跑出這個
您的答案為: -88g 正確答案為: bye~Rabbit
您的答案為: -16g 正確答案為: bye~Rabbit
你最後判斷
if(flag==1)有問題
還有while(Numbers>=0) 這段也有問題
你會多算一次
我沒看程式碼
雖看上面各位留言是本身程式有問題
不過有時執行測試的結果會和正式送出的結果不同
所以有時DEV出來是對的就相信自己送出試試
反正送出又不錢(誤
Code恕刪********
m=m+poi;
中毒體重會越來越輕
應該要扣掉 m=m-poi;
case 4 poi=poi-n;
中毒會累加
應該要加上 poi=poi+n;
m=m+poi //因為poi 是 -n 所以這兩個是正確的判斷式,還是謝謝您抽空幫我看^^
我用DEVC++ 跑出來答案是正確的 不知道為何跑測試是錯的...
我直接用你程式碼執行跑出這個
您的答案為: -88g 正確答案為: bye~Rabbit
您的答案為: -16g 正確答案為: bye~Rabbit
你最後判斷
if(flag==1)有問題
還有while(Numbers>=0) 這段也有問題
你會多算一次
我沒看程式碼
雖看上面各位留言是本身程式有問題
不過有時執行測試的結果會和正式送出的結果不同
所以有時DEV出來是對的就相信自己送出試試
反正送出又不錢(誤
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int main(){
int Numbers;
int x,y,z,w,n,m;
char action[200000];
while(cin>>Numbers){
for(int i=4;i>0;i--)
{
bool flag=0;
int temp,poi=0;
cin>>x>>y>>z>>w>>n>>m;
cin.ignore();
cin.getline(action,200000);
int len=strlen(action);
for(int i=0;i<100;i++)
cout<<action[i];
cout<<len;
for(int i=0;i<len;i++){
if(action[i]>='0'&&action[i]<='4')
{
temp=action[i]-'0';
m=m+poi;
if(m<=0)
{
flag=1;
break;
}
switch(temp)
{
case 0:
break;
case 1:
{
m=m+x;
break;
}
case 2:
{
m=m+y;
break;
}
case 3:
{
m=m-z;
break;
}
case 4:
{
m=m-w;
poi=poi-n;
break;
}
}
}
}
if(flag==1)
cout<<"bye~Rabbit"<<endl;
else
cout<<m<<"g"<<endl;
}
}
return 0;
}
**原本CODE刪掉,我把開頭的While改掉後,死在測資5跟9,持續思考中,感謝各位!
您的答案為: bye~Rabbit 正確答案為: 12969g
您的答案為: bye~Rabbit 正確答案為: 12923g
Code恕刪********
m=m+poi;
中毒體重會越來越輕
應該要扣掉 m=m-poi;
case 4 poi=poi-n;
中毒會累加
應該要加上 poi=poi+n;
m=m+poi //因為poi 是 -n 所以這兩個是正確的判斷式,還是謝謝您抽空幫我看^^
我用DEVC++ 跑出來答案是正確的 不知道為何跑測試是錯的...
我直接用你程式碼執行跑出這個
您的答案為: -88g 正確答案為: bye~Rabbit
您的答案為: -16g 正確答案為: bye~Rabbit
你最後判斷
if(flag==1)有問題
還有while(Numbers>=0) 這段也有問題
你會多算一次
我沒看程式碼
雖看上面各位留言是本身程式有問題
不過有時執行測試的結果會和正式送出的結果不同
所以有時DEV出來是對的就相信自己送出試試
反正送出又不錢(誤
#include
#include
#include
using namespace std;
int main(){
int Numbers;
int x,y,z,w,n,m;
char action[200000];
while(cin>>Numbers){
for(int i=4;i>0;i--)
{
bool flag=0;
int temp,poi=0;
cin>>x>>y>>z>>w>>n>>m;
cin.ignore();
cin.getline(action,200000);
int len=strlen(action);
for(int i=0;i<len;i++){
if(action[i]>='0'&&action[i]<='4')
{
temp=action[i]-'0';
m=m+poi;
if(m<=0)
{
flag=1;
break;
}
switch(temp)
{
case 0:
break;
case 1:
{
m=m+x;
break;
}
case 2:
{
m=m+y;
break;
}
case 3:
{
m=m-z;
break;
}
case 4:
{
m=m-w;
poi=poi-n;
break;
}
}
}
}
if(flag==1)
cout<<"bye~Rabbit"<<endl;
else
cout<<m<<"g"<<endl;
}
}
return 0;
}
**原本CODE刪掉,我把開頭的While改掉後,死在測資5跟9,持續思考中,感謝各位! 重貼一次...埋的code忘了拿掉
您的答案為: bye~Rabbit 正確答案為: 12969g
您的答案為: bye~Rabbit 正確答案為: 12923g
你原本 while(Numbers>=0) 只錯小小的地方
你現在寫成for(int i=4;i>0;i--)
等於把Numbers寫死 (=4) 後面自然都不會對了
if(flag==1) 你應該是要判斷體重 而不是判斷flag (有可能吃下黃蘿蔔或發霉的蘿蔔後瘦死) (也有可能早上中毒瘦死)
(你這樣寫等於只判斷早上有沒有中毒後瘦死)
Hi 曾士峰, 感謝您的幫忙,真的非常感謝你點出這問題
我把for(int i=4;i>0;i--) 改成 for(int i=Numbers;i>0;i--) 以及最後在if(flag==1||m<=0) 多加一個判斷式後就AC了
感謝你這幾天的幫忙^^
你原本 while(Numbers>=0) 只錯小小的地方
你現在寫成for(int i=4;i>0;i--)
等於把Numbers寫死 (=4) 後面自然都不會對了
if(flag==1) 你應該是要判斷體重 而不是判斷flag (有可能吃下黃蘿蔔或發霉的蘿蔔後瘦死) (也有可能早上中毒瘦死)
(你這樣寫等於只判斷早上有沒有中毒後瘦死)
Hi 曾士峰, 感謝您的幫忙,真的非常感謝你點出這問題
我把for(int i=4;i>0;i--) 改成 for(int i=Numbers;i>0;i--) 以及最後在if(flag==1||m<=0) 多加一個判斷式後就AC了
感謝你這幾天的幫忙^^
不用客氣,有幫上你的忙就好^^
自己願意去理解,才是最重要的,不然我key再多字也是白費!
你原本 while(Numbers>=0) 只錯小小的地方
你現在寫成for(int i=4;i>0;i--)
等於把Numbers寫死 (=4) 後面自然都不會對了
if(flag==1) 你應該是要判斷體重 而不是判斷flag (有可能吃下黃蘿蔔或發霉的蘿蔔後瘦死) (也有可能早上中毒瘦死)
(你這樣寫等於只判斷早上有沒有中毒後瘦死)
小弟剛學程式不久,想請問為什麼不能只用if(flag==1) 判斷即可,flag=1是因為條件式(m<=0)已經成立了,所以有點困惑
你原本 while(Numbers>=0) 只錯小小的地方
你現在寫成for(int i=4;i>0;i--)
等於把Numbers寫死 (=4) 後面自然都不會對了
if(flag==1) 你應該是要判斷體重 而不是判斷flag (有可能吃下黃蘿蔔或發霉的蘿蔔後瘦死) (也有可能早上中毒瘦死)
(你這樣寫等於只判斷早上有沒有中毒後瘦死)
小弟剛學程式不久,想請問為什麼不能只用if(flag==1) 判斷即可,flag=1是因為條件式(m<=0)已經成立了,所以有點困惑
Hi
抱歉,現在才看到這個問題。
答案是可以的。