出题散分.

z569362161 2009-11-29 11:34:08
出个简单点的题.

我有200可用分.每天散100分.CSDN限制我散分最高分100分.返回50可用分.注意每天回帖还给10分.100分以下全部散了.再次返回一半的分,

当我可用分少于10分,就不回帖得10分可用分.

问题是多少天可用分归0.要求10行以下代码搞定.
...全文
313 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq614190370 2009-11-29
  • 打赏
  • 举报
回复
题有毛病啦,20分 处有死循环啦,你也不好好算算
qq614190370 2009-11-29
  • 打赏
  • 举报
回复
当我可用分少于10分,就不回帖得10分可用分.

啥意思
z569362161 2009-11-29
  • 打赏
  • 举报
回复
你才死循环了呢!!!

10行以下代码.注意了
qq614190370 2009-11-29
  • 打赏
  • 举报
回复
考虑道当你还有20分时,你今天散了20分 拿了10分 你今天回复的10分要到第二天才加上,第二天你还剩20分,所以你就死循环了
qq614190370 2009-11-29
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
int x=200,index=0;
while(x!=0)
{
if(x>=100)
x-=40;
else if(x<100 && x>=10)
x=x/2+10;
else if(x<10)
x+=10;
index++;
printf("%d天,分为:%d\n",index,x);
}
printf("%d\n",index);
return 0;
}
kongbei 2009-11-29
  • 打赏
  • 举报
回复
macrojj 2009-11-29
  • 打赏
  • 举报
回复
mark
老邓 2009-11-29
  • 打赏
  • 举报
回复
先做个记号 ^_^
z569362161 2009-11-29
  • 打赏
  • 举报
回复
loaden

daniel

来答啊!
mstlq 2009-11-29
  • 打赏
  • 举报
回复
如果楼主硬要一帖散全部,那就
#include <iostream>
int main(){
int point=200,data=0;
for (data=0;point>0;point = (point<100) ? point/2 : (point-100) + 50){
point += (data == 0 || point<=10) ? 0 : ((std::cout<<"因为昨日回帖,所以今日加10分"<<std::endl),10);//注意回帖加分是第二早上天才给的……
std::cout<<"第"<<data++<<"天早上分:"<<point<<std::endl;//以当天早上发帖前为标准
std::cout<<"用"<<(point<100?point:100)<<"分发帖,当天结贴,算上返回分,总共剩余:"<<((point<100) ? point/2 : (point-100) + 50)<<std::endl<<std::endl;
}
std::cout<<"第"<<data<<"天早上可用分清零:"<<std::endl;
}
mstlq 2009-11-29
  • 打赏
  • 举报
回复
楼主没说10分或以下怎么散分……
我默认是发10个1分贴直接清零……
happyfirst_2009 2009-11-29
  • 打赏
  • 举报
回复
呵呵···
mstlq 2009-11-29
  • 打赏
  • 举报
回复
详细解说版,10行……
#include <iostream>
int main(){
int point=200,data=0;
for (data=0;point>10;point = (point<100) ? point/2 : (point-100) + 50){
point += (data == 0) ? 0 : ((std::cout<<"早上回帖加分"<<std::endl),10);//注意回帖加分是第二早上天才给的……
std::cout<<"第"<<data++<<"天早上分:"<<point<<std::endl;//以当天早上发帖前为标准
std::cout<<"用"<<(point<100?point:100)<<"分发帖,当天结贴,算上返回分,总共剩余:"<<((point<100) ? point/2 : (point-100) + 50)<<std::endl<<std::endl;
}
std::cout<<"第"<<data<<"天早上分:"<<point<<std::endl<<"第"<<data+1<<"天早上分:"<<0<<std::endl;
}
陌上花花 2009-11-29
  • 打赏
  • 举报
回复
学习下
mstlq 2009-11-29
  • 打赏
  • 举报
回复
不要输出版
#include <iostream>
int main(){
int point=200,data=0;
for (data=0;point>10;(point = (point<100) ? point/2 : (point-100) + 50),++data)
point += (data == 0) ? 0 : 10;//注意回帖加分是第二天才给的……
std::cout<<"data"<<data<<":"<<point<<std::endl;
return 0;
}


加入输出版……
都不超过10行……

#include <iostream>
int main(){
int point=200,data=0;
for (data=0;point>10;(point = (point<100) ? point/2 : (point-100) + 50),++data){
point += (data == 0) ? 0 : 10;//注意回帖加分是第二早上天才给的……
std::cout<<"data"<<data<<":"<<point<<std::endl;//以当天早上发帖前为标准
}
std::cout<<"data"<<data<<":"<<point<<std::endl<<"data"<<data+1<<":"<<0<<std::endl;
return 0;
}
Whitney0 2009-11-29
  • 打赏
  • 举报
回复
来看看答案的……
benbshmily 2009-11-29
  • 打赏
  • 举报
回复
嗯,不错的问题。我想想
cblcz 2009-11-29
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 z569362161 的回复:]
day=1;160      这是我电脑运行的结果.还有没有不一样的代码了.
day=2;120
day=3;80
day=4;45
day=5;27
day=6;18
day=9;11
day=10;10
day=11;5
day=12;2
day=13;1
day=14;0
[/Quote]
第4天应该是50吧
80散了还40,回复+10,还剩50
45应该是先回复+10,再散90拿回45
不过回复+10都是第二天给的呀
ld6886 2009-11-29
  • 打赏
  • 举报
回复
学习一下.
whg01 2009-11-29
  • 打赏
  • 举报
回复
发帖后,用“无满意答案”结贴。可用分就不会返还。这样你可以一天内把可用分归零。一个帖子你最多可以设置100分,但每天可以发很多帖子。
加载更多回复(27)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧