博文

队列求 joseph 解(2007-11-13 12:49:00)

摘要:#include <iostream>
#include <iomanip>
#include <queue>
#include <ctime> void read_card(long n, long r); int main(void)
{
    long n,r;
    while(std::cin>>n>>r)
    {
        std::clock_t clock1=clock();
        read_card(n,r);
        std::clock_t clock2=clock()-clock1;
        std::cout<<std::endl<<std::setw(5)<<clock2<<std::endl;
    }
    return 0;
}
void read_card(long n,long r)
{
    std::queue<long> q;
    long i=1;
    for(; i<=n; ++i)
    {
        q.push(i);
    }
    while(!(q.empty()))
  &......

阅读全文(1943) | 评论:0

FTP命令(2007-07-23 18:42:00)

摘要:如果你想学习使用进行后台FTP下载,那么就必须学习FTP指令。 FTP的命令行格式为: ftp -v -d -i -n -g [主机名] , 其中 -v 显示远程服务器的所有响应信息; -n 限制ftp的自动登录,即不使用;.n etrc文件; -d 使用调试方式; -g 取消全局文件名。 FTP使用的内部命令如下(中括号表示可选项): 1.![cmd[args>:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip 2.$ macro-ame[args]: 执行宏定义macro-name。 3.account[password]: 提供登录远程系统成功后访问系统资源所需的补充口令。 4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。 5.ascii:使用ascii类型传输方式。 6.bell:每个命令执行完毕后计算机响铃一次。 7.bin:使用二进制文件传输方式。 8.bye:退出ftp会话过程。 9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。 10.cd remote-dir:进入远程主机目录。 11.cdup:进入远程主机目录的父目录。 12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。 13.close:中断与远程服务器的ftp会话(与open对应)。 14.cr:使用asscii方式传输文件时,将回车换行转换为回行。 15.delete remote-file:删除远程主机文件。 16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。 17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件 18.disconnection:同close。 19.form format:将文件传输方式设置为format,缺省为file方式。 20.get remote-file[local-file]: 将远程主......

阅读全文(1219) | 评论:0

勒让得多项式(2007-03-16 03:25:00)

摘要:////////////////////////////////////////////////////////////////////////////////
/*勒让得多项式:                                                              */
/*                                                                            */
/*            &......

阅读全文(2594) | 评论:0

回文(2007-03-16 03:24:00)

摘要:#include <stdlib.h>
#include <stdio.h> #define MAXSIZE 100
typedef enum {false,true} bool; bool huiwen(char str[],int n)
{
    
     char st[MAXSIZE];
     int i,j,top;
    
     top = -1;
     i = -1;
    
     do
     {
         top++;
         i++;
         st[top] = str[i];
    
     }while(i+1<n/2);
    
     if( n%2!=0&&n>2 )
         i+=1;
        
     i++;   
     whil......

阅读全文(1829) | 评论:0

循环链表(用来实现报数)(2007-02-03 22:03:00)

摘要:#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define TYPE struct stu /* 有n给人站成一圈,分辨编号1``n,以k报数, 每报到k的人退出队列,然后继续从下一人开始报数,依次循环*/
/*  知道剩下的人等于k-1,求最后剩下的人的原来编号  */ struct stu
{
      
       int flag;
       struct stu *next; }; /* f函数功能:建立循环链表! */
TYPE *f ( int k, int *n )  
{
   
    TYPE *p1,*p2,*head;     //定义头指针及结点指针
   
    int i;                //控制数
   
    head = NULL;           //表头置空
   
    for( i = 1 ; i <= k ; i++ )   //循环创建
    {
     
  ......

阅读全文(2787) | 评论:0

二进制数转换为十进制数(2007-01-24 15:22:00)

摘要:#include <stdio.h>
#include <stdlib.h>
#define SIZE 16 //将十进制数转换成二进制数
int main()
{
   
    int i,j,k;
    int count=0;
    int a[SIZE] = {0};
   
    printf("输入十进制数:");
    scanf("%d",&i);
   
    while(i!=0)
    {
      
       a[count++] = i%2;
       i = i/2;            
   
    }
   
    for(j=0;j<SIZE/2;j++)
    {
      
                 k  = a[j];
        &nb......

阅读全文(2172) | 评论:0

十进制数转换为二进制数(2007-01-24 15:20:00)

摘要:#include <stdlib.h>
#include <stdio.h>
#define SIZE 32 //输入二进制数,转为十进制数
int main()
{
   
    void f(int b[],int n);      //求乘积
    int fun(int n);             //首位置换
   
    char ch;
    int i = 0,a[SIZE] = {0},j;
    unsigned int s = 0;
   
    printf("输入二进制数:");     while((ch=getchar())!='\n')   //输入二进制数
    {        if(ch=='1')
         a[i++] = ch-48;
        
         else if(ch=='0')
            a[i++] = ch-48;
      ......

阅读全文(2519) | 评论:0

万年历(2006-12-30 13:29:00)

摘要:#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define TURE 1
#define FALSE 0
int week(int *p1,int *p2,int *p3);
int data(int *p1,int *p2);
int Aurthorware(int year);
/*Aurthorware函数,用以查询该年是否为闰年*/
int Aurthorware(int year)
{
   int result;
   if((year%4==0&&year%100!=0)||(year%4==0&&year%400==0))
      result = TURE;  
   else
      result = FALSE;
   return result;   
}
int data(int *p1,int *p2)
{
    int month[13] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int i=1,k,j;
    if(Aurthorware(*p1))
       month[1]+=1;
    printf(" Sun  Mon  Tur  Wed  Thu  Fri  Sat \n");
    k = week(p1,p2,&i);
    ......

阅读全文(2067) | 评论:2

求n(n>0)以内的素数,并输出最大的素数(2006-12-25 17:24:00)

摘要:#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*1-n的素数并且求这些素数的和,还有这些素数中的最大值*/
int main()
{
    int i,total=0,j=0,k,max,num[2000];
    int a,n;    printf("please input n(2000>n>0)");     scanf("%d",&n);
    for(i=2;i<n;i++)
    {  
       a=1;               //每次给a复位
       for(k=2;k<=sqrt(i);k++)
          if(i%k==0)
           {
              a=0;    
              break;
        &nbs......

阅读全文(2626) | 评论:0

卡布列克常数(2006-10-08 12:41:00)

摘要:83.卡布列克常数
验证卡布列克运算。任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:
1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;
2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);
3)求两个数的差,得到一个新的四位数(高位零保留)。
重复以上过程,最后得到的结果是6174,这个数被称为卡布列克数。
*问题分析与算法设计
题目中给出的处理过程很清楚,算法不需要特殊设计,可按照题目的叙述直接进行验证。
*程序与程序注释
#include<stdio.h>
void vr6174(int);
void parse_sort(int num,int *each);
void max_min(int *each,int *max,int *min);
void parse_sort(int num,int *each);
int count=0;
void main()
{
int n;
printf("Enter a number:");
scanf("%d", &n); /*输入任意正整数*/
vr6174(n); /*调用函数进行验证*/
}

void vr6174(int num)
{
int each[4],max,min;
if(num!=6174&&num) /*若不等于74且不等于0则进行卡布列克运算*/
{
parse_sort(num,each); /*将整数分解,数字存入each数组中*/
max_min(each,&max,&min); /*求数字组成的最大值和最小值*/
num=max-min; /*求最大值和最小值的差*/
printf("[%d]: %d-%d=%d\n",++count,max,min,num); /*输出该步计算过程*/
vr6174(num); /*递归调用自身继续进行卡布列克运算*/
}
}
void parse_sort(int n......

阅读全文(2630) | 评论:0