You are on page 1of 44

-....................................................................

2
-.................................................................................2
-..........................................................................................3
8.29 .................................................................3
8.29 5 2 .......................................................................4
8.29 ..........................................................................................5
8.31 ..........................................................................................................5
8.31 23...................................................6
8.31 ................................................................................................6
9.1.AM ...................................................................7
9.1.AM ..................................................................................................8
9.1.AM if ............................................................................8
9.1.PM................................................................................................................8
9.1.PM................................................................................................................9
9.1.PM................................................................................................................9

-
10 A
(1)

10

(2)

60%

(3) 60 60

#include<stdio.h>
void sort(int a[])
{
int i,j,t;
for(i = 0;i < 10;i++)
for(j = i+1;j<10;j++)
{
if(a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
int main()
{
int num[10] = {0};
int i;
for(i = 0;i < 10;i ++)
{
scanf("%d ", &num[i]);
}
sort(num);

if(num[0] >= 60)


printf("60");
else
printf("%d",(num[4]/10)*10);
return 0 ;
}

n(1 n 65535) 123n-1n



n 1
2 3
n n
n

#include<stdio.h>
#define MAX 65535
int GetNum(int n)
{
int i,j,num = 0;
char a[MAX] = {0};
if((n < 1) || (n > MAX))
return 0;
for(i = 1; i < n; i++)
for(j = 1; j < n; j++)
{
if ((j % i) == 0)
{
a[j] += 1;
a[j] %= 2;
}
}

for (i = 1; i < n; i++)


{
if (1 == a[i])
num++;
}
}

return num;

int main()
{
int a;
scanf("%d",&a);
printf("%d",GetNum(a));
return 0;
}

#include<stdio.h>
int main()
{
int i,j,n;
int cnt = 0;
scanf("%d",&n);
for(i = 1;;i++)
{
j = i * i;
if(j > n)
break;
cnt++;
}
printf("%d",cnt);
return 0;
}

2 A B
T1T2

AA1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T


2 A14 A15 A16 A17 A18
BB1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B10 T2 B11 B12 B1
3 B14 B15
// 2 A B
T1T2

// AA1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12


A13 T2 A14 A15 A16 A17 A18
// BB1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B1!0 T2 B11
B12 B13 B14 B15

//
//
#include<iostream>
#include<string>
#include<stack>
#define inf 1000 //
#define stanum 35

//

using namespace std;


string
s1[stanum]
=
{"A1","A2","A3","A4","A5","A6","A7","A8","A9","A10",
"A11","A12","A13","A14","A15","A16","A17","A18",
"B1","B2","B3","B4","B5","B6","B7","B8","B9","B10",
"B11","B12","B13","B14","B15","T1","T2"} ; //

void floyd(int dis[][stanum],int path[][stanum])


{
// path
for(int row=0;row<stanum;row++)
for(int col=0;col<stanum;col++)
path[row][col]=row;
//
for(int k=0;k<stanum;k++)
for(int i=0;i<stanum;i++)
for(int j=0;j<stanum;j++)
if(dis[i][j]>dis[i][k]+dis[k][j])
{
dis[i][j]=dis[i][k]+dis[k][j];
path[i][j]=path[k][j];
}
}
int string2int(string s) //
{
for(int i=0;i<stanum;i++)
if(s==s1[i])
{
return i;
break;
}
}
void printres(int dis[][stanum],int path[][stanum],string start,string dest)

{
cout<<"start station to destination distance
cout<<"\t"<<start<<"->"<<dest<<"\t\t";

path"<<endl;

int s;
int d;
s=string2int(start);
d=string2int(dest);
cout<<"\t"<<dis[s][d]+1<<"\t"; // 1
for(int i=0;i<stanum;i++)
for(int j=0;j<stanum;j++)
{
if(i==s&&j==d) //
{
stack<int> pathrout; //
int k=j;
do
{
k=path[i][k];
pathrout.push(k);
}while(k!=i);
//
cout<<s1[pathrout.top()];
pathrout.pop();
int length=pathrout.size();
for(int t=0;t<length;t++)
{
cout<<"->"<<s1[pathrout.top()];
pathrout.pop();
}
cout<<"->"<<s1[d]<<endl;

break;

}
}
int main()
{
int distance[stanum][stanum];
int path[stanum][stanum];
string start;
string dest;

//
for(int i=0;i<stanum;i++)
{
for(int j=0;j<stanum;j++)
{
if(i==j)
distance[i][j]=0;
else
distance[i][j]=inf;
}
}
//
int sa[21]={0,1,2,3,4,5,6,7,8,33,9,10,11,12,34,13,14,15,16,17,0};
for(int m=0;m<20;m++)
{
distance[sa[m]][sa[m+1]]=1;
distance[sa[m+1]][sa[m]]=1;
}
int sb[17]={18,19,20,21,22,33,23,24,25,26,27,34,28,29,30,31,32};
for(int n=0;n<16;n++)
{
distance[sb[n]][sb[n+1]]=1;
distance[sb[n+1]][sb[n]]=1;
}
floyd(distance,path);
cout<<"input start and destination"<<endl;
cin>>start>>dest;

printres(distance,path,start,dest);
system("pause");
return 0;

8.29

1','

Smple input3,3,5,3,6,9,7,9 Sample outPut: 3

#include<stdio.h>
int main()
{
int a[100] = {0}, n = 0,temp,min, max,i,j,num = 0;
char c = '0';
n = 0;
while(c != '\n')
{
scanf("%d%c",&temp,&c);
a[n] = temp;
n++;
}
max = min = a[0];
for(i = 0;i < n;i++)
{
if(a[i] > max)
max = a[i];
if(a[i] < min)
min = a[i];
}
for(j = 0;j < n;j++)
{
if((a[j] < max) && (a[j] > min))
num++;
}
printf("%d",num);
return 0;

8.29 5 2
2 5 2 160-190
2

Smple input161 189 167 172 188 Sample outPut: 188 189

#include<stdio.h>
#include<math.h>
void sort(int a[])
{
int i,j,temp;
for(i = 0;i < 5;i++)
for(j = 0;j < 5;j++)
{
if(a[i] < a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}

int main()
{
int a[5] = {0}, b[4] = {0};
int i, temp;
for(i = 0;i < 5;i++)
scanf("%d",&a[i]);
sort(a);
for(i = 0;i < 5;i++)
{
b[i] = abs(a[i+1] - a[i]);
}
temp = b[0];
for(i = 0;i < 4;i++)
{
if(temp > b[i])
temp = b[i];
}
for(i = 4;i > 0;i--)
//

{
if((b[i] == temp) && a[i] > 160 && a[i] < 190)
printf("%d %d",a[i],a[i+1]);
}
return 0;
}

8.29
3
[,']', 0 1.
Smple inputdfa(sdf)df[dfds(dfd)] Smple outPut:0

#include<stdio.h>
int main()
{
char a[100],c,i = 0;
int flag = 0;
scanf("%c",&c);
while(c != '\n' && flag == 0)
{
switch(c)
{
case('('):
a[i] = c;
i++;
break;
case('['):
a[i] = c;
i++;
break;
case(')'):
if(a[i - 1] == '(')
{
a[i -1] = '\0';
i--;
}
else
flag = 1;
break;
case(']'):
if(a[i - 1] == '[')
{

a[i -1] = '\0';


i--;
}
else
flag = 1;
break;
}
scanf("%c",&c);
}
if(a[0] != '\0')
printf("1");
else
printf("%d",flag);
return 0;
}

8.31
1. 1

#include<stdio.h>
int main()
{
int n,m = 0,temp;
scanf("%d",&n);
temp = n;
while(temp > 0)
{
m *= 10;
m += temp % 10;
temp = temp / 10;
}

if(m == n)
printf("1");
else
printf("0");
return 0;
}

8.31 23

23
23
123 423 186523
2.

123 423 5645 875 186523

#include<stdio.h>
int main()
{
int a[100] = {0},temp,s,i = 0,j;
char c = '\0';
int sort[100],t = 0;
while(c != '\n')
{
scanf("%d%c",&temp,&c);
a[i] = temp;
i++;
}
scanf("%d",&s);
for(j = 0;j <= i;j++)
{
temp = a[j];
while(temp > 0)
{
if(temp % 100 == s)
{

sort[t] = a[j];
t++;
break;

}
else
temp /= 10;
}

for(i = 0;i < t;i++)


for(j = 0;j < t;j++)
if(sort[i] < sort[j])
{
temp = sort[i];
sort[i] = sort[j];
sort[j] = temp;
}
for(i = 0;i < t;i++)
printf("%d ",sort[i]);
return 0;
}

8.31
3.

2 9 0

one two

nine zero

double
OneTwoThree
123
OneTwoDoubleTwo
1222
1Two2 ERROR
DoubleDoubleTwo ERROR
Double Double

#include<stdio.h>
#include<string.h>
int main()
{
char a[11][11] =
{"zero","one","two","three","four","five","six","seven","eight","nine","double"};
char temp[11];
char c = '\0';
int i,d = 0,f;
//d means double
f means final
while(c != '\n')
{
scanf("%s%c",&temp,&c);
f = 0;
for(i = 0;i < 11;i++)
{
if(strcmp(temp,a[i]))
{
printf("ERROR\n");
break;
}
}
for(i = 0;i < 11;i++)
{
if(!strcmp(temp,a[i]) && i < 10)
{
printf("%d",i);
f = 1;
if(d == 1)
{
printf("%d",i);
d = 0;
}
}
else if(!strcmp(temp,a[i]) && i == 10)
{
if(d == 1){
printf("ERROR\n");
break;
}
d = 1;

f = 1;
}
}
if(f == 0)
break;
}
return 0;
}

9.1.AM
12336544 1750
0
456321 571-175-571

#include<stdio.h>
int main()
{
int Num,n[50],a[10] = {0},temp,i = 0,flag = 0;
char c; //a falg 0 0

scanf("%c",&c);
scanf("%d",&Num);
while(Num > 0)
{

temp = Num % 10;


if(a[temp] == 0)
{
a[temp] = 1;
n[i] = temp;
i++;
}
Num /= 10;
}
if(c == '-')
printf("%c",c);
for(temp = 0;temp < i;temp++)
{
if(n[temp] != 0 || flag != 0)
{
printf("%d",n[temp]);
flag = 1;
}
}
temp = ((int)c-48) - n[i - 1];

//

if(c != '-' && temp != 0)


printf("%d",(int)c-48);
return 0;
}

9.1.AM

1000000000000001
1
1000000000000000
char a[] %s a[0]

#include<stdio.h>
#include<string.h>
void dec(char *d1, char *d2, char *out)
{
int len_min = strlen(d1);
int len_max = strlen(d2);
int last_j = 0; //
while(len_min > 0)
{
int dd1 = d1[len_min - 1] - '0';
int dd2 = d2[len_max - 1] - '0';
if (last_j) dd2 = dd2 - 1;
last_j = dd2 >= dd1 ? 0 : 1;
dd2 = dd2 >= dd1 ? dd2 : dd2 + 10;
out[len_max] = (dd2 - dd1) + '0';
len_max --;
len_min --;
}
while(len_max > 0)
{
int dd2 = (d2[len_max -1] - '0');
if (last_j) dd2 = dd2 - 1;
last_j = dd2 >= 0 ? 0 : 1;

dd2 = dd2 >= 0 ? dd2 : dd2 + 10;


out[len_max] = dd2 + '0';
len_max --;
}
if (last_j)
out[0] ='1';
else
out[0] ='0';
}
int main()
{
char a[1000],b[1000],c[1000];
int len,i,flag = 0;
scanf("%s %s",&a,&b); //a >= b
dec(b,a,c);
len = strlen(a);
if(c[0] == 1)
printf("-");
for(i = 1;i < (len + 1);i++)
{
if(c[i] != 48 || flag != 0)
{
printf("%c",c[i]);
flag = 1;
}
}
return 0;
}

9.1.AM if
if ()
if
if((a==1)&&(b==1))
if((a==1))&&(b==1)) if

if((a==1)&&(b==1))
RIGTH 3 3
if((a==1))&&(b==1))
WRONG 3 4

#include<stdio.h>
#include<string.h>
int main()
{
char s[800] = {'\0'};
int len,i,l = 0,r = 0;
int a[50],k = 0,flag = 1;
scanf("%s",&s);
len = strlen(s);
for(i = 0;i < len;i++)
{
if(s[i] == '(')
{
l++;
a[k] = 1;
k++;
}
else if(s[i] == ')')
{
r++;
if(a[k-1] == 1 && k > 0)
{
a[k -1] = 0;

k--;
}
else
flag = 0;
}
if((i == 0 && s[i] != '(') || (i == len - 1 && s[i] != ')'))
flag = 0;
}
if((a[0] == 0) && (flag != 0))
printf("RIGHT ");
else
printf("WRONG ");
printf("%d %d",l,r);
return 0;
}

9.1.PM

M N

m n, M N
0
n=8 m=9
123456789

12345678
90000000
123 12300000

#include<stdio.h>
#include<string.h>
int main()
{
char c[200] = {'\0'};
int n,i,j,len;
scanf("%s",&c);
scanf("%d",&n);

len = strlen(c);
for(i = 1;i <= len;i++)
{
j = i % n;
printf("%c",c[i-1]);
if(j == 0)
printf("\n");
}
for(i = j+1;i <= n;i++)
printf("0");
return 0;
}

9.1.PM 2 32

2 32

#include<stdio.h>
int main()
{
int M,a[32] = {0},i = 0,j;
scanf("%d",&M);
while(M > 0)
{
a[i] = M % 2;
i++;
M /= 2;
}
for(i = 31;i >= 0;i--)
printf("%d",a[i]);
return 0;
}

9.1.PM

01
20
5 1 3 5 7 8
1 3 5 7 8
0 0 1 1 1
5+7+8=20

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int a[50];
int b[50] = {0};
int find(int w,int s)
{
if(w == 0)
return 1;
if(w < 0 || w > 0 && s == 0)
return 0;
if(find(w - a[s-1],s-1))
{
b[s-1] = 1;
return 1;
}
return find(w,s-1);
}

int main()
{
int n,m,i;
scanf("%d %d",&n,&m);
for(i = 0;i < m;i++)
scanf("%d",&a[i]);
if(find(n,m))
{
for(i = 0;i < m;i++)
printf("%d",b[i]);
}
else
printf("No\n");
return 0;
}

2014 7 6 9:30 B

2sdARSFGfg

#include<stdio.h>
#include<string.h>
int main()
{
char a[100] = {'\0'};
int i = 0,len;
/*while(c != '\n')
{
scanf("%c%c",&a[i++],&c);
if(c != '\n')
a[i++] = c;
}*/
gets(a);
len = strlen(a);
for(i = 0;i <= len;i++)
{
if(a[i] >= 'A' && a[i] <= 'Z')
printf("%c",a[i]);
}
printf("\n");
return 0;
}

ARSFG

N 3
N

#include<stdio.h>
void Josephus(int m)
{
int a[100] = {0};
int i,num = 0,n = 0;
for(i = 0;i < m;i++)
a[i] = i+1;
for(i = 0;i < m;i++)
{
while(n < 3)
{
if(a[num] == 0)
num = (num + 1) % m;
n++;
num = (num + 1) % m;
}
num--;
if(num < 0)
num = m - 1;
if(i == (m - 1))
printf("%d\n",a[num]);
a[num] = 0;
}
}
int main()
{
int m;
scanf("%d",&m);
Josephus(m);
return 0;
}

10*10 0 1 2

10*10
4 3 1 4,3

: 0

2014 7 6 9:30A

20

121 33 44 11 1111

#include<stdio.h>
#include<string.h>

11

int gcd(int n,int m)


{
if(m <= n && n % m == 0)
return m;
if(n < m)
return gcd(m,n);
else
return gcd(m,n%m);
}
int main()
{
int a[20] = {0};
char c = '\0';
int i = 0,length = 0;
while(c != '\n')
{
scanf("%d%c",&a[i++],&c);
}
for(i = 0;i < 20;i++)
{
if(a[i] != 0)
length++;
}
for(i = 0;i < length - 1;i++)
{
a[i+1] = gcd(a[i],a[i+1]);
}
printf("%d",a[length - 1]);
}

15

none
1 1 1 1 2 2 2 1 3 3 3 3 1 1 1
none
#include<stdio.h>
int main()

int a[15] = {10},b[15] = {0};


int i,j,k = 0,n,flag = 15,num = 0;
for(i = 0;i < 15;i++)
{
scanf("%d",&a[i]);
}
while(flag > 0)
{
for(i = 0;i < 15;i++)
{
if(b[i] == 0)
{
if(a[i] == a[i+1])
k++;
else
{
n = i - k;
if(k >= 2)
{
for(j = n;j < i+1;j++)
b[j] = 1;
k = 0;
break;
}
else
{
k = 0;
n = 0;
continue;
}
}
}
}
flag--;
}
for(i = 0;i < 15;i++)
if(b[i] == 0)
{
num++;
printf("%d ",a[i]);
}
if(num == 0)
printf("NONE!\n");
return 0;

()

I am a student.I come from XiDian.I love XiDian.

: i,xidian
#include<stdio.h>
#include<string.h>
#include<malloc.h>
int compare(const char * st1,const char * st2)
{
if (strcmp(st1,st2)==0)
return 1;
else
return 0;
}
void PickWord(const char* pInPut,char *pOutPut1,char *pOutPut2)
{
char tem[BUFSIZ][40]={'\0'};
const char *p=pInPut;
int j=0;
int i=0;
int l=0;
char *po1=pOutPut1;
char *po2=pOutPut2;
int m,n,max1,max2;
int max[BUFSIZ]={0};
//
while(*p!='\0')
{
if(((*p>='a')&&(*p<='z'))||((*p>='A')&&(*p<='Z'))||
(*p=='\''))
{
tem[j][i++]=*p ;
p++;
}
else
{
tem[j][i]='\0';
j++;
p++;
i=0;
}
}
//
for (n=0;n<=j;n++)
{
max[n]=0;
for(m=0;m<=j;m++)
{

max[n]+=compare(tem[n],tem[m]);
}
}
//
max1=0;
max2=0;
for (n=0;n<=j;n++)
{
if (max[n]>max1)
{
max1=max[n];
i=n;
}
}
for (l=0;l<strlen(tem[i]);l++)
{
*pOutPut1++=tem[i][l];
}
*pOutPut1='\0';
// 0
for (n=0;n<=j;n++)
{
if ((max[n]==max1)&&compare(tem[n],po1))
max[n]=0;
}
//
for (n=1;n<=j;n++)
{
if (max[n]>max2)
{
max2=max[n];
i=n;
}
}
for (l=0;l<strlen(tem[i]);l++)
{
*pOutPut2++=tem[i][l];
}
*pOutPut2='\0';
}
void main()
{
const char a[]="I am a student.I come from XiDian.I love XiDian.";
char* b=(char *)malloc(sizeof(char)*40);
char* c=(char *)malloc(sizeof(char)*40);
PickWord(a,b,c);
printf("%s\n",b);

printf("%s",c);
free(b);
free(c);
}
P.S. K

2014 7 6 13:00 A

M N ,
1<=M<=101<=N<=10
5 311 1,1,3
7 3
8
#include<stdio.h>
int fun(int m,int n)
//m n
{
int i,t = 0;
if(n <= 1)
return 1;
for(i = m;i >= 0;i -= n)
t += fun(i,n-1);
return t;
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",fun(m,n));
return 0;
}

#include<stdio.h>
int count(int x,int y)
{
if(y == 1 || x == 0) return 1;
if(x < y)
return count(x,x);
return count(x,y - 1) + count(x - y,y);
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",count(m,n));
return 0;
}

20131231
365
#include<stdio.h>
int IsLeapYear(int Year)
{
if(((Year % 4 == 0) && (Year % 100 != 0)) || (Year % 400 == 0))
return 1;
else
return 0;
}
int main()
{
long int date;
int Year,Month,Day;
scanf("%d",&date);
Year = date / 10000;
Month = (date % 10000) / 100;
Day = date % 100;
if(Month < 1 || Month > 12 || Day < 1 || Day > 31)
printf("ERROR DATE!\n");
switch(Month)
{
case 1:
printf("%d",Day);
break;
case 2:
printf("%d",(Day + 31));
break;
case 3:
if(IsLeapYear(Year))
printf("%d",(Day + 60));
else
printf("%d",(Day + 59));
break;
default:
if(IsLeapYear(Year))
printf("%d",(Day + (Month / 2) * 31 + ((Month - 4) / 2 *
30 + 29)));
else
printf("%d",(Day + (Month / 2) * 31 + ((Month - 4) / 2 *
30 + 28)));
break;
}
printf("\n");
return 0;


(Ling,Yi,Er,San,Si,Wu,Liu,Qi,Ba,Jiu)
10 YiShi,
Shi.
JiuWanJiuQianJiuBaiJiuShiJiu
99999
#include<stdio.h>
#include<string.h>
int main()
{
char a[14][14] = {"Ling","Yi","Er","San","Si","Wu","Liu",
"Qi","Ba","Jiu","Shi","Bai","Qian","Wan"};
char temp[100],b[14][14] = {"\0"};
int i,j,n = 0;
int m[2] = {0};
int num = 0,len,l = 0,c = 0;
int st = 0,end = 0,flag = 0,flag1 = 0;
scanf("%s",&temp);
len = strlen(temp);
for(i = 0;i < len;i++)
{
if(temp[i] >= 'A' && temp[i] <= 'Z')
{
num++;
if(flag == 0)
{
st = i;
flag = 1;
}
else if(flag == 1)
{
end = i;
flag1 = 1;
}
}
if(flag1 == 1)
{
flag1 = 0;
l = 0;
for(j = st;j < end;j++)
{
b[c][l] = temp[j];
l++;
}
b[c][l] = '\0';
c++;
st = end;
}
}

l = 0;
for(j = end;j < len;j++)
{
b[c][l] = temp[j];
l++;
}
b[c][l] = '\0';

//

for(j = 0;j <= c;j++)


{
for(i = 0;i < 14;i++)
{
if(!strcmp(b[j],a[i]) && i < 10)
{
m[0] = i;
}
else if(!strcmp(b[j],a[i]) && i ==
{
m[1] = 10;
n += m[0] * m[1];
m[0] = m[1] = 0;
}
else if(!strcmp(b[j],a[i]) && i ==
{
m[1] = 100;
n += m[0] * m[1];
m[0] = m[1] = 0;
}
else if(!strcmp(b[j],a[i]) && i ==
{
m[1] = 1000;
n += m[0] * m[1];
m[0] = m[1] = 0;
}
else if(!strcmp(b[j],a[i]) && i ==
{
m[1] = 10000;
n += m[0] * m[1];
m[0] = m[1] = 0;
}
}
}

10)

11)

12)

13)

if(m[0] != 0 && m[1] == 0)


n += m[0];

printf("%d",n);
return 0;

2014 7 6 13:00 B

n(1n65535) 123
n-1n

n 1
2
3 n
n n

10000ms
65535

#include<stdio.h>
int LightNum(int Num)
{
int l[65535] = {0};
int i,j,count = 0;

for(i = 1;i <= Num;i++)


{
for(j = 1;j <= Num;j++)
{
if((j % i) == 0)
{
l[j - 1] += 1;
l[j - 1] %= 2;
}
}
}
for(i = 0;i < 65535;i++)
if(l[i] == 1)
count++;
return count;

int main()
{
int l;
scanf("%d",&l);
printf("%d",LightNum(l));
return 0;
}

#include<stdio.h>
int LightNum(int Num)
{
int l[65535] = {0};
int i,j,count = 0;
long int t;
for(i = 1;i <= Num;i++)
{
for(j = 1;j <= Num;j++)
{
t = i * j;

255

if(t > Num)


break;
l[t - 1]++;

}
}
for(i = 0;i < 65535;i++)
if(l[i] % 2 != 0)
count++;
return count;

int main()
{
int l;
scanf("%d",&l);
printf("%d",LightNum(l));
return 0;
}

#include<stdio.h>
int main()
{
int i,j,n;
int cnt = 0;
scanf("%d",&n);
for(i = 1;;i++)
{
j = i * i;
if(j > n)
break;
cnt++;
}
printf("%d",cnt);
return 0;
}

1
1 0
12312 12, 123456 0.
12312
1

#include<stdio.h>
#include<string.h>
#define TableSize 256;
int Equalchar(char *str)
{
int i;
char *phashKey = str;
int hashTable[256];
for(i = 0;i < 256;i++)

hashTable[i] = 0;
while(*phashKey)
{
hashTable[* phashKey]++;
phashKey++;
}
phashKey = str;
while(*phashKey)
{
if(hashTable[* phashKey] > 1)
return 1;
phashKey++;
}
return 0;
}
int main()
{
char s[1000];
gets(s);
printf("%d",Equalchar(s));
return 0;
}

void div(const int a,const int b,char *str


1 3
0.(3)
#include<stdio.h>
#include<string.h>
#include<stdio.h>
#include<string.h>
#define maxn 100;
#define max_INT 10000;
int reminder_exist[10000] = {0};
int reminder_pos[10000] = {0};
void div(const int a, const int b, char *str)
{
int numerator,denominator,quotient,reminder,outcnt = 0;
int flag = 0;
int original_numerator = a;
int integer;
int cycle_pos = 100,cycle_len = 0,i,j;
numerator = a;
denominator = b;
if(a*b < 0)

flag = 1;
numerator = numerator < 0 ? -numerator : numerator;
denominator = denominator < 0 ? -denominator : denominator;
quotient = numerator / denominator;
reminder = numerator % denominator;
integer = quotient;
for(i = 0; i <= 100; i++)
{
if(reminder_exist[reminder])
{
cycle_pos = reminder_pos[reminder];
cycle_len = i - cycle_pos;
break;
}
else
{
reminder_exist[reminder] = 1;
reminder_pos[reminder] = i;
}
numerator = reminder * 10;
quotient = numerator / denominator;
reminder = numerator % denominator;
str[outcnt++] = quotient + '0';
}
str[outcnt++] = '\0';
if(!flag)
printf("%d.",integer);
else
printf("-%d.",integer);
for(j = 0; j < cycle_pos; j++)
printf("%c",str[j]);
printf("(");

for(j = cycle_pos; j < i; j++)


printf("%c",str[j]);
printf(")");

int main()
{
int a,b,flag = 0;
char s[100];
scanf("%d%d",&a,&b);
if(!a && !b)
return 0;
div(a,b,s);
return 0;

1 // 2 A B
T1T2

2 // AA1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2


A14 A15 A16 A17 A18
3 // BB1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B1!0 T2 B11 B12 B13
B14 B15
4 //
5 //
6
7
8 #include<iostream>
9 #include<string>
10 #include<stack>
11
12 #define inf 1000 //
13
14 #define stanum 35 //
15
16 using namespace std;
17 string s1[stanum] = {"A1","A2","A3","A4","A5","A6","A7","A8","A9","A10",
18
"A11","A12","A13","A14","A15","A16","A17","A18",
19
"B1","B2","B3","B4","B5","B6","B7","B8","B9","B10",
20
"B11","B12","B13","B14","B15","T1","T2"} ; //
21
22
23 void floyd(int dis[][stanum],int path[][stanum])
24 {
25
// path
26
for(int row=0;row<stanum;row++)
27
for(int col=0;col<stanum;col++)
28
path[row][col]=row;
29
30
//
31
for(int k=0;k<stanum;k++)
32
for(int i=0;i<stanum;i++)
33
for(int j=0;j<stanum;j++)
34
if(dis[i][j]>dis[i][k]+dis[k][j])
35
{
36
dis[i][j]=dis[i][k]+dis[k][j];
37
path[i][j]=path[k][j];
38
}
39
40 }
41
42
43 int string2int(string s) //
44 {

45
46
for(int i=0;i<stanum;i++)
47
if(s==s1[i])
48
{
49
return i;
50
break;
51
}
52
53
54 }
55
56 void printres(int dis[][stanum],int path[][stanum],string start,string dest)
57 {
58
59
cout<<"start station to destination distance
path"<<endl;
60
cout<<"\t"<<start<<"->"<<dest<<"\t\t";
61
62
int s;
63
int d;
64
s=string2int(start);
65
d=string2int(dest);
66
cout<<"\t"<<dis[s][d]+1<<"\t"; // 1
67
68
for(int i=0;i<stanum;i++)
69
for(int j=0;j<stanum;j++)
70
{
71
if(i==s&&j==d) //
72
{
73
stack<int> pathrout; //
74
int k=j;
75
do
76
{
77
k=path[i][k];
78
pathrout.push(k);
79
80
}while(k!=i);
81
82
//
83
84
cout<<s1[pathrout.top()];
85
pathrout.pop();
86
87
int length=pathrout.size();
88
for(int t=0;t<length;t++)
89
{
90
cout<<"->"<<s1[pathrout.top()];
91
pathrout.pop();
92
93
}
94
cout<<"->"<<s1[d]<<endl;
95

96
97
break;
98
}
99
100
101
}
102
103
104}
105
106int main()
107{
108 int distance[stanum][stanum];
109 int path[stanum][stanum];
110 string start;
111 string dest;
112
113 //
114 for(int i=0;i<stanum;i++)
115 {
116
for(int j=0;j<stanum;j++)
117
{
118
if(i==j)
119
distance[i][j]=0;
120
else
121
distance[i][j]=inf;
122
}
123 }
124 //
125 int sa[21]={0,1,2,3,4,5,6,7,8,33,9,10,11,12,34,13,14,15,16,17,0};
126 for(int i=0;i<20;i++)
127 {
128
distance[sa[i]][sa[i+1]]=1;
129
distance[sa[i+1]][sa[i]]=1;
130 }
131 int sb[17]={18,19,20,21,22,33,23,24,25,26,27,34,28,29,30,31,32};
132
133 for(int i=0;i<16;i++)
134 {
135
distance[sb[i]][sb[i+1]]=1;
136
distance[sb[i+1]][sb[i]]=1;
137 }
138
139
140 floyd(distance,path);
141 cout<<"input start and destination"<<endl;
142 cin>>start>>dest;
143
144 printres(distance,path,start,dest);
145 system("pause");
146 return 0;

147}

1. 5
2. stdin('Standard Input')
stdout('Standard Output')
3.
4. VS2005 JDK1.7 Java
"Main" package C/C++
VS2005
5.
6. main
7.
8.
9.

0
2 3
1. 2 1 2 3
2. 4 ()
3. 7

1.3 3
4
2. 14 18 ()
:

:
( )
1T2T3T,4T5T6T,7T8T9T,1D2D3D,4D4D.

1.1T 1 T 19
;
2.4D 4 D , 19,
;
3.,

4...
5.

:
,

:
1T2T3T,4T5T6T,7T8T9T,1D2D3D,4D4D.
:
1
:

#include<stdio.h>
#include<string.h>
int main()
{
char t[100] = "1T2T3T,4T4T4T4T,7T8T9T,1D2D3D,4D4D.",a[100][3] =
{"\0"};
char d[3] = "2T",b[3] = "1T",c[3] = "3T";
int len,i,j,l = 0,r = 0;
int n = 0,num = 0;
//gets(t);
len = strlen(t);
for(i = 0;i < len;i++)
{
if(t[i] != ',' && t[i] != '.')
{
a[l][r] = t[i];

if(r == 1)
{
a[l][2] = '\0';
l++;
r = -1;
}
r++;

}
for(i = 1;i < l;i++)
{
if(!strcmp(a[i],d) && !strcmp(a[i-1],b) && !strcmp(a[i+1],c))
n += 1;
}
for(i = 0;i < l;i++)
{
if(!strcmp(a[i],a[i+1]))
num++;
if(num == 7)
{
n += 2;
num = 0;
}
}
for(i = 0;i < l-3;i++)
if(!strcmp(a[i],a[i+1])
&&
!strcmp(a[i+1],a[i+2])
strcmp(a[i+2],a[i+3]))
n += 2;

&&

//
//
}

printf("%d",n);
for(i = 0;i <= l;i++)
printf("%s\n",a[i]);
return 0;

You might also like