#include<cstdio>
#include<cmath>
int main(){
int n,x,i,j,k;
char c;
scanf("%d %c",&x,&c);
n=sqrt(2.0*(x+1))-1;
if(n%2==0) n--;
int acw=x-(n+1)*(n+1)/2+1;
//正三角
for(i=0;i<(n+1)/2;i++)
{
for(j=0;j<i;j++)
{
printf(" ");
}
for(k=0;k<n-2*i;k++)
{
printf("%c",c);
}
printf("\n");
}
//倒三角
for(i=1;i<(n+1)/2;i++)
{
for(j=0;j<(n-2*i-1)/2;j++)
{
printf(" ");
}
for(k=0;k<2*i+1;k++)
{
printf("%c",c);
}
printf("\n");
}
printf("%d",acw);
return 0;
}
#include<cstdio>
#include<cmath>
bool jud(int a)
{
if(a<2) return false;
if(a>=2)
{
for(int i=2;i<=sqrt(a);i++)
{
if(a%i==0)
{
return false;
}
}
return true;
}
}
int main(){
int i,N,m=2,count=0;
scanf("%d",&N);
for(i=2;i<=N;i++)
{
if(jud(i)){
if(i-m==2)
{
count++;
}
m=i;
}
}
printf("%d",count);
return 0;
}
#include<cstdio>
void ivt(int A[],int a,int b)
{
int temp;
for(int i=0;i<(b-a+1)/2;i++)
{
temp=A[a+i-1];
A[a+i-1]=A[b-i-1];
A[b-i-1]=temp;
}
}
int main(){
int N,b,a[120];
scanf("%d %d",&N,&b);
if(b>N)
{
b=b%N;
}
for(int i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
ivt(a,1,N);
ivt(a,1,b);
ivt(a,b+1,N);
printf("%d",a[0]);
for(int i=1;i<N;i++)
{
printf(" %d",a[i]);
}
return 0;
}
#include<stdio.h>
#include<string.h>
int hash1[10]={0};
int hash2[10]={0};
int jud(char a[],int len)
{
if(a[0]>='5'&&a[0]<='9')
{
return 0; //false代表不合格的进位大整数;
}
if(a[0]=='0'&&len!=1)
{
return 2;
}
if(a[0]=='0'&&len==1)
{
return 1;
}
if(a[0]>='1'&&a[0]<'5')
{
return 1;
}
}
int main()
{
char a[25];
int inta[25],i,len,temp;
gets(a);
len=strlen(a);
/*将字符串数组转化为对应整数,存入变换的整数数组中*/
for(i=0;i<len;i++)
{
inta[i]=a[i]-'0';
hash1[inta[i]]++;
}
/*/检测输出
for(i=0;i<len;i++)
{
printf("%d",inta[i]);
}
*/
//检测变化数组内容的数字出现次数;
/**/
// printf("\n");
// for(i=0;i<10;i++)
// {
// printf("%d ",hash1[i]);
// }
/**/
// printf("\n");
int count=0;
for(i=len-1;i>0;i--)
{
temp=inta[i]*2+count;
if(temp>=10)
{
count=1;
}
else{
count=0;
}
inta[i]=temp%10;
}
inta[0]=inta[0]*2+count;
//将变换数组*2
//判断数组
if( jud(a,len)==1)
{
//对*2后的数组中数字出现的次数进行统计;
for(i=0;i<len;i++)
{
hash2[inta[i]]++;
}
// for(i=0;i<10;i++)
// {
// printf("%d ",hash2[i]);
// }
//比较两hash表是否完全相等
for(i=0;i<10;i++)
{
if(hash1[i]!=hash2[i])
{
printf("No\n");
for(i=0;i<len;i++)
{
printf("%d",inta[i]);
}
return 0;
}
}
printf("Yes\n");
for(i=0;i<len;i++)
{
printf("%d",inta[i]);
}
}
else if(jud(a,len)==2)
{
printf("No\n");
for(i=0;i<len;i++)
{
printf("%d",inta[i]);
}
}
else
{
printf("No\n");
for(i=0;i<len;i++)
{
printf("%d",inta[i]);
}
}
return 0;
}
#include<stdio.h>
//#define P 54
int main()
{
char color[5]={'S','H','C','D','J'}; //color为花色数组 ;
int P=54; //本题建议使用int 写死P的数值;define定义P值,会使程序整体运行时间变长 define 384ms int 256ms
int start[P],end[P],operate[P]; //start为初始卡牌数组;end为操作后卡牌数组;operate为操作次序数组 ;
int K,i;
for(i=0;i<P;i++) //初始化填充start数组 ;
{
start[i]=i+1;
}
scanf("%d",&K); //输入变化的次数
for(i=0;i<P;i++) //输入操作变化的数组
{
scanf("%d",&operate[i]);
}
/*****************数据检查*********************
for(i=0;i<P;i++)
{ //输出初始化的start[i]数组,检查是否初始化正确。运行时注释掉本段;
printf("%d ",start[i]);
}
for(i=1;i<=P;i++) //运行时注释掉本段
{
printf("%d ",operate[i]);
}
/**********************************************/
/***********************************主要函数***************************************/
for(int step = 0;step < K; step++) //执行K次操作——对start数组进行修改的次数 ;
{
for(i=0;i<P;i++)
{
end[operate[i]-1]=start[i]; //根据operate数组的指令交换指定位置的start与end;
}
for(i=0;i<P;i++)
{
start[i]=end[i]; //再次交换start与end数组,使start数组成为进行了1次位置变化的数组,方便进行后续操作;
}
}
for(i=0;i<P;i++)
{
start[i]--;
if(i!=0)printf(" ");
printf("%c%d",color[start[i]/13],start[i]%13+1);
}
/**********************************************************************************/
return 0;
}