A求一个浮点数四舍五入后的数(如果个位数是9另外输出)。。。水题,注意位数太多,要用字符串接收
#include<stdio.h>
#include<iostream>
using namespace std;
char s[1100];
char s1[1100];
int main()
{
int i;
bool tag;
while(gets(s))
{
tag=false;
for(i=0;s[i];i++)
{
if(s[i+1]=='.')
{
if(s[i]=='9')
{
tag=true;
printf("GOTO Vasilisa.\n");
}
else if(s[i+2]>='5')
s1[i]=s[i]+1;
else s1[i]=s[i];
break;
}
s1[i]=s[i];
}
s1[++i]=0;
if(!tag) printf("%s\n",s1);
}
return 0;
}
B题有N个杯子,开始水一样多,然后问是不是可能只从一个杯子往另外一个杯子倒水(不会溢出)。先求总体积,除以杯子个数,然后判断是不是只有一个比它体积多,一个比它少,且多的体积和少的体积一样多。。。
#include<stdio.h>
#include<iostream>
using namespace std;
int a[11000];
int main()
{
int n,i,j,ii,iii,jjj,jj;
while(scanf("%d",&n)!=EOF)
{
j=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
j+=a[i];
}
if(j%n!=0) printf("Unrecoverable configuration.\n");
else
{
ii=-1,jj=-1,iii=0,jjj=0;
for(i=0;i<n;i++)
{
if(a[i]<j/n)
{
iii++;
ii=i;
}
else if(a[i]>j/n)
{
jjj++;
jj=i;
}
}
if(iii==0&&jjj==0)
printf("Exemplary pages.\n");
else if(iii==1&&jjj==1&&(a[jj]-a[ii])%2==0)
printf("%d ml. from cup #%d to cup #%d.\n",(a[jj]-a[ii])/2,ii+1,jj+1);
else printf("Unrecoverable configuration.\n");
}
}
return 0;
}
C题给六颜色(可能相同),由这些颜色能涂成多少个不同的正方体
针对颜色的个数情况分类讨论。这个经过N久才过。。。用脑子弄不清楚啊。。。
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
char s[10];
char s1[7]="ROYGBV";
int main()
{
int i,j,num[6];
while(gets(s))
{
memset(num,0,sizeof(num));
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
if(s[i]==s1[j])
break;
num[j]++;
}
sort(num,num+6);
if(num[5]==6) printf("1\n");
else if(num[5]==5)
printf("1\n");
else if(num[5]==4&&num[4]==2)
printf("2\n");
else if(num[5]==3&&num[4]==3)
printf("2\n");
else if(num[5]==4)
printf("2\n");
else if(num[5]==3&&num[4]==2)
printf("3\n");
else if(num[5]==2&&num[4]==2&&num[3]==2)
printf("6\n");
else if(num[5]==3)
printf("5\n");
else if(num[5]==2&&num[4]==2)
printf("8\n");
else if(num[5]==2)
printf("15\n");
else printf("30\n");
}
return 0;
}