湖南大學離散數學程序設計題2010年答案
⑴ 程序設計題(剛教過集合)
#include <fstream>
#include <set>
#include <string>
using namespace std;
ifstream fin("input.txt");
ofstream fout("output.txt");
int k;
int n;
char str[100];
string s;
multiset <string> Set;
int main()
{
int i,j;
fin>>n>>k;
for (i=0;i<n;i++) fin>>str[i];
str[n]=0;
s=str;
for (i=1;i<=n;i++)
for (j=0;j+i-1<n;j++)
Set.insert(s.substr(j,i));
for (i=n;i>=1;i--)
{
for (j=0;j+i-1<n;j++)
if (Set.count(s.substr(j,i))>=k) break;
if (j+i-1<n)
{
fout<<i<<endl;
break;
}
}
fin.close();
fout.close();
return 0;
}
⑵ 程序設計題 答案
#include<iostream>
#include<string>
using namespace std;
const int n=70;
string num[n];
int score[n];
int main()
{int i,s=0,s';
void input_data();
input_data();
for(i=0;i<n;i++)
{s=s+score[i];
return s;}
s'=s/n;
cout<<"平均成績為"<<":"<<s'<<endl;
for(i=0;i<n;i++)
if(score[i]>s')
cout<<num[i]<<" "<<score[i]<<endl;
return 0;}
void input_data()
{int i;
for(i=0;i<n;i++)
{cout<<"請輸入學生學號和成績"<<i+1<<":";
cin>>num[i]>>score[i];}
}
⑶ 計算機專業,離散數學的一道題。。急求答案。謝謝啦~
證明對任意x∈G,e為G中的幺元,x=e*x*e-1,故<x,x>∈R,於是R是自反的;
對任意<σ,φ>∈R,則存在θ∈G使得φ=θ*σ*θ-1,於是得
σ=θ-1*φ*θ,故<φ,σ>∈R,於是R是對稱的;
對任意<σ,φ>∈R,<φ,ɡ>∈R,故存在θ1,θ2∈G使得φ=θ1*σ*θ1-1,ɡ=θ2*φ*θ2-1,於是
ɡ=θ2*(θ1*σ*θ1-1)*θ2-1=(θ2*θ1)*σ*(θ2-1*θ1)-1,由於θ2*θ1∈G,故<σ,ɡ>∈R ,於是R是傳遞的;由於R是自反,對稱,傳遞的,故R是G上的等價關系。
⑷ 計算機程序設計習題集答案
1./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int score;
printf("請輸入你的分數:");
scanf("%d",&score);
if(score<0||score>100)
printf("輸入有誤!");
else if(score>=60&&score<70)
printf("及格");
else if(score>=70&&score<80)
printf("中等");
else if(score>=80&&score<90)
printf("良好");
else if(score>=90&&score<=100)
printf("優秀");
else
printf("不及格");
}
2./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a,b;char c;
printf("請輸入運算式:");
scanf("%d%c%d",&a,&c,&b);
switch(c)
{
case '+':printf("%d%c%d=%d",a,c,b,a+b);break;
case '-':printf("%d%c%d=%d",a,c,b,a-b);break;
case '*':printf("%d%c%d=%d",a,c,b,a*b);break;
case '/':
if(b!=0)
printf("%d%c%d=%d",a,c,b,a/b);
else
printf("分母不能為零");
break;
case '%':
if(b!=0)
printf("%d%c%d=%d",a,c,b,a%b);
else
printf("分母不能為零");
break;
default:printf("運算符輸入有誤!");
}
}
3./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d ",i,j,i*j);
}
printf("\n");
}
}
4./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a,i,k;
printf("請輸入一個整數:");
scanf("%d",&a);
if(a==1)
printf("1既不是質數也不是合數");
else if(a>1)
{
for(i=2;i<=a/2;i++)
{
if(a%i==0)
k++;
}
if(k==a/2-1)
printf("你輸入的數是質數!");
else
printf("你輸入的是合數!");
}
else
printf("你輸入的數有誤!");
}
5./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a,i;
printf("請輸入一個數:");
scanf("%d",&a);
printf("%d=",a);
for(i=2;i<a;i++)
{
while(a!=1,i!=a)
{
if(a%i==0)
{
printf("%d*",i);
a=a/i;
}
else
{
break;
}
}
}
printf("%d",a);
}
6./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int n,i,j,k;
printf("請輸入菱形大小:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i+1;j++)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
printf("*");
}
printf("\n");
}
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");
}
for(k=1;k<=2*(n-i+1)-1;k++)
{
printf("*");
}
printf("\n");
}
}
7./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,j,k;
for(i=1;i<=26;i++)
{
for(j=1;j<=26-i+1;j++)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
if(k==i&&i!=1)
printf("%c",65+i);
else
printf("%c",64+i);
}
printf("\n");
}
}
8./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a[15],i;
a[0]=1;
a[1]=1;
for(i=2;i<15;i++)
{
a[i]=a[i-1]+a[i-2];
}
for(i=0;i<15;i++)
{
printf("%d\t",a[i]);
}
}
9./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int hao;//接受候選人的代號
int a,b,c,d;//用於統計候選人所得票數
char name[20];//記住票數最多的人
int max;//記票數
printf("候選人如下:\n");
printf("1.張三\n2.李四\n3.王麻子\n4.趙六\n");
hao=-1;//隨便給hao賦一個非零值確保能進入for語句循環
a=b=c=d=0;//為零初始值
for(;hao!=0;)
{ printf("請輸入候選人代號:\n");
scanf("%d",&hao);
switch(hao)
{
case 1:a++;break;
case 2:b++;break;
case 3:c++;break;
case 4:d++;break;
case 0:break;
default:printf("請正確輸入!");
}
}
printf("投票結果如下:\n");
printf("張三:%d票\n",a);
printf("李四:%d票\n",b);
printf("王麻子:%d票\n",c);
printf("趙六:%d票\n",d);
/*if(a=b=c=d)
{
printf("請再次投票!");
{
while
{*/
if(a>b)
{ max=a;strcpy(name,"張三");}
else
{ max=b;strcpy(name,"李四");}
if(c>max)
{ max=c;strcpy(name,"王麻子");}
if(d>max)
{ max=d;strcpy(name,"趙六");}
if(a=b=c=d)
{ strcpy(name,"請再次投票!");}
printf("%s",name);
printf("恭喜%s被選!!!",name);
}
10./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,j,k,n;
static int a[50][50];
printf("input line:");
scanf("%d",&n);
a[0][0]=1;
for(i=0;i<=n;i++)
{
for(j=0;j<n-i;j++)
printf(" ");
for(j=0;j<=i;j++)
{
if(i==j&&j==0)
a[i][j]==1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf("%2d ",a[i][j]);
}
printf("\n");
}
}
11./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a[10];
int i,j,temp;
for(i=0;i<=9;i++)
{
printf("請輸入%d個數:",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<10-1;i++)
{
for(i=0;i<10-1;i++)
{
for(j=0;j<10-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
12./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,j,temp,max,min;
int a[10];
for(i=0;i<10;i++)
{
printf("input %d number:",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
min=a[0];max=a[0];
for(i=0;i<10;i++)
{
max=max>a[i]?max:a[i];
min=min<a[i]?min:a[i];
}
printf("max=%d\t,min=%d\n",max,min);
for(i=0;i<5;i++)
{
temp=a[i];
a[i]=a[9-i];
a[9-i]=temp;
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
13./* Note:Your choice is C IDE */
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
void main()
{
int k,n,i;
srand(time(NULL));
printf("%d",rand()%+1);
printf("1.石頭\n2.剪刀\n3.布\n");
do{
a:printf("你出的拳是:");
scanf("%d",&k);
if(k==1)
{ if(rand()%+1==1)
{printf("重劃");goto a;}
else if(rand()%+1==2)
printf("恭喜您,贏!");
else if(rand()%+1==3);
printf("很遺憾,您敗了!");
}
if(k==2)
{if(rand()%+1==1)
printf("很遺憾,您敗了!");
else if(rand()%+1==2)
{printf("重劃");goto a;}
else(rand()%+1==3);
printf("恭喜您,贏!");
}
if(k==3)
{if(rand()%+1==2)
printf("恭喜您,贏!");
else if(rand()%+1==1)
printf("很遺憾,您敗了!");
else (rand()%+1==3);
{printf("重劃");goto a;}
}
if(k>3)
printf("error");
}while(k<0||k>4);}
14./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,j,k,count1=0,count2=0,count3=0,count=0;
for(i=0;i<=9;i++)
{
for(j=0;j<=9;j++)
{
for(k=0;k<=9;k++)
{
count++;
//printf("%d%d%d ",i,j,k);
if(i==j||i==k||j==k)
count1++;
if(i==j&&i==k&&j==k)
count2++;
if(i!=j&&i!=k&&j!=k)
count3++;
}
}
}
printf("總數為:%d",count);
printf("兩位數相同的有:%d ",count1);
printf("三位數相同的有:%d ",count2);
printf("三位數不同的有:%d ",count3);
}
15/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a[6]={55,180,285,195,300};
int i,sum=0;
int b,c;
printf("1.珠海\n2.廣州\n3.南昌\n4.上海\n5.北京\n6.黑龍江\n");
printf("請選擇出發站:");
scanf("%d",&b);
printf("請選擇終點站:");
scanf("%d",&c);
for(i=b;i<c;i++)
{
sum+=a[i-1];
}
printf("費用為:%d",sum);
}
17* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int yeas,month,day,sum=0,i;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
a:printf("請輸入年份:");
scanf("%d",&yeas);
if(yeas<1900)
goto a;
b:printf("請輸入月份:");
scanf("%d",&month);
if(month<0||month>12)
goto b;
c:printf("請輸入日:");
scanf("%d",&day);
if(day<0||day>31)
goto c;
if(yeas%100==0&&yeas%4==0||yeas%400==0)
{
a[1]=29;
}
for(i=0;i<month-1;i++)
{
sum+=a[month-2];
}
sum=sum+day;
printf("這一天是一年中的第%d天!",sum);
}
18./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,n,m,k,l=5;
int a[15]={2,9,15,23,34,49};
for(i=0;i<=l;i++)
{
printf("%d ",a[i]);
}
printf("\n");
do
{
printf("請任意的輸入一個數:");
scanf("%d",&n);
for(i=0;i<=l;i++)
{
if(n<a[i])
{ k=i;break;}
else
{k=l+1;}
}
for(i=l+1;i>=k+1;i--)
{
a[i]=a[i-1];
}
a[k]=n;
l++;
printf("插入後的數組:\n");
for(i=0;i<=l;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}while(l<15);
printf("數據已滿!");
}
19.* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a=8,b=5,c=3,d=2;
int n=1999;
int max;
int i;
//max=a>b?a:b>c?b:c>d?c:d;
for(i=1;i<=n;i++)
{
max=a>b?a:b>c?b:c>d?c:d;
if(max==a)
{
a-=3;
b+=1;
c+=1;
d+=1;
}
else if(max==b)
{
b-=3;
a+=1;
c+=1;
d+=1;
}
else if(max==c)
{
c-=3;
a+=1;
b+=1;
d+=1;
}
else
{
a+=1;
b+=1;
c+=1;
d-=3;
}
}
printf("%d\n",max);
printf("%d,%d,%d,%d",a,b,c,d);
}
20./* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
char a[40];
int k,i,count1=0,count2=0,count3=0,count4=0,count=0;
printf("請輸入一串字元:\n");
gets(a);
k=strlen(a);
for(i=0;i<=k;i++)
{
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
count1++;
if(a[i]<='9'&&a[i]>'0')
count2++;
if(a[i]=='_')
count3++;
if(a[i]==' ')
count4++;
}
printf("字母個數:%d\t數字個數: %d \t下劃線個數:%d\t空格個數: %d\t其他: %d",count1,count2,count3,count4,count);
}
⑸ 離散數學作業(急求一下題目答案)
有點亂
⑹ 求VFP程序設計題答案(流程圖!)
CLEAR
b=0
FOR n=11 TO 999
a=0
FOR t=1 TO n
a=a+t
IF a=n
b=b+n
a=0
EXIT
ENDIF
ENDFOR
ENDFOR
?b
RETURN
