#include<bits/stdc++.h>
using namespace std;
int sel[12];
int N[12][12]={0};
int vis[12];
void dfs(int pos){
for(int i=0;i<12;i++){
if(N[pos][i]&&sel[i]==1&&vis[i]==0){
vis[i]=1;
dfs(i);
}
}
}
int check(){
int ly=0;
memset(vis,0,sizeof(vis));
for(int i=0;i<12;i++){
if(sel[i]==1&&vis[i]==0){
ly++;
vis[i]=1;
dfs(i);
}
}
if(ly==1) return 1;
else return 0;
}
int main(){
//由题意连着只有两种情况:左右连着,上下连着
for(int i=0;i<=10;i++){
if(i==3||i==7)continue;
else N[i][i+1]=N[i+1][i]=1;
}
//for(int i=4;i<7;i++){
// N[i][i+1]=N[i+1][i]=1;
//}
//for(int i=8;i<11;i++){
// N[i][i+1]=N[i+1][i]=1;
//}
for(int i=0;i<=7;i++){
N[i][i+4]=N[i+4][i]=1;
}
//for(int i=1;i<9;i+4){
// N[i][i+4]=N[i+4][i]=1;
//}
//for(int i=2;i<10;i+4){
// N[i][i+4]=N[i+4][i]=1;
//}
//for(int i=3;i<11;i+4){
// N[i][i+4]=N[i+4][i]=1;
//}
//12选5
int i,j,k,p,q,ans=0;
for (i=1;i<13-4;i++)
for (j=i+1;j<13-3;j++)
for (k=j+1;k<13-2;k++)
for (p=k+1;p<13-1;p++)
for (q=p+1;q<13;q++)
memset(sel,0,sizeof(sel));//0
sel[i]=1,sel[j]=1,sel[k]=1,sel[p]=1,sel[q]=1;//1
if(check()) ans++;
}
}
}
}
}
cout<<ans;
return 0;}
自动类型转换参考博客https://blog.youkuaiyun.com/cherish_2012/article/details/21243047
强制类型转换
#include <bits/stdc++.h>
using namespace std;
int main()
{ int jg=0,yx=0;
long n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
if(a[i]>=60) jg++;
if(a[i]>=85) yx++;
}
//double jgl=jg*1.0/n*100.0;
//double yxl=yx*1.0/n*100.0;
//printf("%.0f%% ",jgl);
//printf("%.0f%%",yxl);
cout<<round(jg*100.0/n)<<"%"<<endl;
cout<<round(yx*100.0/n)<<"%"<<endl;//C语言中可以使用round(double x);进行四舍五入
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{ int jg=0,yx=0;
long n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
if(a[i]>=60) jg++;
if(a[i]>=85) yx++;
}
//double jgl=jg*1.0/n*100.0;
//double yxl=yx*1.0/n*100.0;
//printf("%.0f%% ",jgl);
//printf("%.0f%%",yxl);
int jgl=round(jg*100.0/n);//round(double x)返回x的四舍五入整数值。
int yxl=round(yx*100.0/n);
//cout<<round(jg*100.0/n)<<"%"<<endl;
//cout<<round(yx*100.0/n)<<"%"<<endl;//C语言中可以使用round(double x);进行四舍五入
printf("%.2d%%\n",jgl);
printf("%.2d%%",yxl);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a[1000]={0};
int cisu[27];
memset(cisu,0,sizeof(cisu));
gets(a);
int n=strlen(a);
int m=-1;
char s;
for(int i=0;i<n;i++){
cisu[a[i]-'a']++;
}
for(int i=0;i<27;i++){
if(m<cisu[i]&&cisu[i]!=0){
m=cisu[i];
s=char(i+'a');
}
}
printf("%c\n",s);
cout<<m<<endl;
return 0;
}
C语言自动类型转换和强制类型转换详解
参考:http://c.biancheng.net/view/261.html