今天做了蓝桥杯2017年C组第7题和B组第3题
这题不难。相当于26进制,注意余数为0相当于Z,而且此时应将商减1
代码:
#include <cstdio>
#include <algorithm>
using namespace std;
int main(){
char ch[26]={'Z'},res[50];
int i,n,a,b,k=0;
scanf("%d",&n);
for(i=1;i<26;i++)
ch[i]=i-1+'A';
while(n>0){
a=n%26;
res[k]=ch[a];
n/=26;
if(a==0)
n--;
k++;
}
for(i=k-1;i>=0;i--)
putchar(res[i]);
return 0;
}
这题其实也不难,根据题意模拟即可,但我做的时候比较不自信,一是不知道该用long long还是double,二是看到自己做出的秤的示数感觉怀疑,于是反复尝试了很多遍。但其实是正确的。
代码:
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int main() {
// freopen("in.txt","r",stdin);
double a[32][32];
int i,j;
memset(a,0,sizeof(a));
for(i=1; i<=30; i++) {
for(j=1; j<=i; j++)
scanf("%lf",&a[i][j]);
}
for(i=2; i<=30; i++) {
for(j=1; j<=i; j++) {
if(j==1)
a[i][j]+=a[i-1][j]/2.0;
else
a[i][j]+=a[i-1][j-1]/2.0+a[i-1][j]/2.0;
}
}
for(j=1; j<=30; j++)
printf("%.2lf ",a[30][j]);
double x=*min_element(a[30]+1,a[30]+31),y=*max_element(a[30]+1,a[30]+31);
printf("\n%.0lf",y*(2086458231/x));
return 0;
}