博文
队列求 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()))
&......
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]: 将远程主......
勒让得多项式(2007-03-16 03:25:00)
摘要:////////////////////////////////////////////////////////////////////////////////
/*勒让得多项式: */
/* */
/* &......
回文(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......
循环链表(用来实现报数)(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++ ) //循环创建
{
 ......
二进制数转换为十进制数(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......
十进制数转换为二进制数(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;
 ......
万年历(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);
......
求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......
卡布列克常数(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......
