实验三

#include<stdio.h>
#include<stdlib.h>
#include<math.h> 
void hanoi(unsigned int n, char from, char temp,char to); /*递归函数声明*/
void moveplate(unsigned int n, char from, char to);/*移动函数的声明*/
int i;
int main()
{
    unsigned int n,t;
    while(scanf("%u",&n)!=0){
    i=0;//输入盘子数目 
    hanoi(n,'A','B','C');
    t=pow(2,n)-1;
    printf("\n一共移动了%d次\n",t);}
    system("pause");
    return 0;
}
void hanoi(unsigned int n,char from,char temp,char to)
{
    if(n==1)
    moveplate(n,from,to);
    else
        { 
        hanoi(n-1,from,to,temp);/*物1个盘子从A以C为中转移到B上*/
        moveplate(n,from,to);/*将盘子n从A移到C上*/
        hanoi(n-1,temp,from,to);/*将n一!个盘子从B以A为中转移到C上*/ 
        }}
void moveplate(unsigned int n, char from, char to)
{    i++;
    printf("第%u个盘子:%c-->%c\n",n,from,to);
}

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int is_prime(int n); 
int main(){
    int i,p,q,n,p_flag,q_flag;
    while(scanf("%d",&n)!=EOF){
    if((n%2==1)||n<4)
    {
        puts("数据输入错误。");
        exit(0);
     } 
     p=1;
     do{
         p=p+1;
         q=n-p;
         p_flag=is_prime(p);
         q_flag=is_prime(q);
     }while(p_flag*q_flag==0);
printf("%d=%d+%d\n",n,p,q);}
system("pause");
return 0;} 
//hanshubianxie
int is_prime(int n){
    int i,flag=1;
    if(n==1)
        return 0;
    for(int i=2;i<=sqrt(n);i++)
        if(n%i==0)
        return 0;
    return 1;
    
}

 

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
#define N 80

void printText(int line,int col,char text[]);//函数声明
void printSpaces(int n);//函数声明
void printBlankLines(int n);//函数声明

int main()
{
int line,col,i;
char text[N]="hi,May~";

srand(time(0));//以当前系统时间作为随机种子
for(i=1;i<=10;++i)
{
    line=rand()%25;
    col=rand()%80;
    printText(line,col,text);
    Sleep(1000);//暂停1000ms
}
return 0;
}
//打印n个空格
void printSpaces(int n)
{
    int i;
    for(i=1;i<=n;++i)
    printf(" ");
}
//打印n行空白行
void printBlankLines(int n)
{
    int i;
    for(i=1;i<=n;++i)
    printf("\n");
}
//在第line行第col列打印一段文本
void printText(int line,int col,char text[])
{
    printBlankLines(line-1);//打印n-1行空行
    printSpaces(col-1);//打印n-1列空格
    printf("%s",text);
}

 
//利用局部static变量的特性,计算阶乘
#include<stdio.h>
long long fac(int n);//函数声明
int main()
{
int i,n;
printf("Entern:");
scanf("%d",&n);
for(i=1;i<=n;++i)
printf("%d!=%lld\n",i,fac(i));
return 0;
}
//函数定义
long long  fac(int n)
{
static long long p=1;
printf("p=%lld\n",p);
p=p*n;
return p;}

//练习:局部static变量特性
#include<stdio.h>
int func(int,int);
//函数声明
int main()
{
int k=4,m=1,p1,p2;
p1=func(k,m);
//函数调用
p2=func(k,m);
//函数调用
printf("%d,%d\n",p1,p2);
return 0;
}
//函数定义
int func(int a,int b)
{
static int m=0,i=2;
i+=m+1;
m=i+a+b;
return m;
}

 

 

#include<stdio.h>
long long fun(int n);
int Pow(int x,int y);//函数声明
int n;
int main()
{
long long f;
while(scanf("%d",&n)!=EOF)
{
f=fun(n);//函数调用
printf("n=%d,f=%lld\n",n,f);
}
return 0;
}
//函数定义
int Pow(int x,int y){
    if(y==0)
        return 1;
    if(y%2==0)
        return Pow(x*x,y/2);
    else
        return Pow(x*x,y/2)*x;
}
long long fun(int a)
{
    int m;
    m=Pow(2,n)-1;
    return m;
}
//待补足

#include<stdio.h>
#include<stdlib.h>
#include<math.h> 
void hanoi(unsigned int n, char from, char temp,char to); /*递归函数声明*/
void moveplate(unsigned int n, char from, char to);/*移动函数的声明*/
int i;
int main()
{
    unsigned int n,t;
    while(scanf("%u",&n)!=0){
    i=0;//输入盘子数目 
    hanoi(n,'A','B','C');
    t=pow(2,n)-1;
    printf("\n一共移动了%d次\n",t);}
    system("pause");
    return 0;
}
void hanoi(unsigned int n,char from,char temp,char to)
{
    if(n==1)
    moveplate(n,from,to);
    else
        { 
        hanoi(n-1,from,to,temp);/*物1个盘子从A以C为中转移到B上*/
        moveplate(n,from,to);/*将盘子n从A移到C上*/
        hanoi(n-1,temp,from,to);/*将n一!个盘子从B以A为中转移到C上*/ 
        }}
void moveplate(unsigned int n, char from, char to)
{    i++;
    printf("第%u个盘子:%c-->%c\n",n,from,to);
}

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int is_prime(int n); 
int main(){
    int i,p,q,n,p_flag,q_flag;
    while(scanf("%d",&n)!=EOF){
    if((n%2==1)||n<4)
    {
        puts("数据输入错误。");
        exit(0);
     } 
     p=1;
     do{
         p=p+1;
         q=n-p;
         p_flag=is_prime(p);
         q_flag=is_prime(q);
     }while(p_flag*q_flag==0);
printf("%d=%d+%d\n",n,p,q);}
system("pause");
return 0;} 
//hanshubianxie
int is_prime(int n){
    int i,flag=1;
    if(n==1)
        return 0;
    for(int i=2;i<=sqrt(n);i++)
        if(n%i==0)
        return 0;
    return 1;
    
}

#include<stdio.h>
#include<math.h> 
long fun(long s);
int main(){
    long s,t;
    printf("Enter a number:");
    while(scanf("%ld",&s)!=EOF)
    {
        t=fun(s);
        printf("new number is %ld\n\n",t);
        printf("Enter a number:");
    }
    return 0;
} 
//hanshudingyi
long fun(long s){
    int i,sum=0,j;
    for(i=0;s!=0;s=s/10)
    {
        j=s%10;
        if(j==1||j==3||j==5||j==7||j==9)
        {sum+=(pow(10,i))*j;
        i++;}
    }return sum;
}

 

posted on 2022-04-24 14:32  FLWkingtgerrr  阅读(41)  评论(1)    收藏  举报

导航