题解 P7258
本蒟蒻的第
经典回顾P7258
那么好的一道打表题你们给弄成了啥!
言归正传,我们可以先把
#include<bits/stdc++.h>
using namespace std;
int s=1;
int main()
{
cout<<"w[10]={1,";
while(1)
{
s*=10;
cout<<s<<",";
if(s==1000000000) break;
}
cout<<"}";
return 0;
}
好了,那么再来说说判断四舍五入
判断第
那么怎么求k-1位上的数呢
其实很简单,那就是c%w[k]/w[k-1],因为c%w[k]求的是w[k-1]就求出了第k-1位上的数
最后还有一个问题:怎么输出?
其实就是c/w[k]*w[k]
要是进一的话就是(c/w[k]+1)*w[k]
最后提醒大家:
一定要注意括号!
code:
#include<bits/stdc++.h>
int sum,c,k,w[10]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
int main()
{
scanf("%d%d",&c,&k);
if(k==0)return printf("%d",c) & 0;//如果k=0,那么就不需四舍五入了,直接输出就行
k=w[k];//注意这里可能和讲的不同,请见谅
sum=c%k/(k/10);
if(sum<5)return printf("%d",(c/k*k)) & 0;
return printf("%d",((c/k+1)*k)) & 0;
//看到这有些同学可能会疑惑:return … & 0;是什么鬼?,其实它是输出并return 0
}
最后管理大大求过&&来玩啊