当前位置:文档之家› 用循环语句打印一个乘法表判断回文数(逆序排列后得到数和原数相同)

用循环语句打印一个乘法表判断回文数(逆序排列后得到数和原数相同)

用循环语句打印一个乘法表判断回文数(逆序排列后得到数和原数相同)
用循环语句打印一个乘法表判断回文数(逆序排列后得到数和原数相同)

福建农林大学实验报告

实验一 Java开发环境

一、实验目的:

1、掌握分支、循环语句的使用。

二、实验内容:

1、用循环语句打印一个99乘法表。

2、判断回文数(逆序排列后得到的数和原数相同)。

三、实验要求:

1、打印的乘法表应该呈现阶梯状。

2、给定一个1-99999之间的整型数,程序可以判断它的位数,并判断是否是回文数。

3、实验报告给出完整代码。

四、算法描述及实验步骤

先定义两个变量i和j然后初始化值为1,由于题目的条件,所以i<+9而j<=I,然后经过输出语句System.out.print (j+"*"+i+"="+i*j+" ");可将i和j值进行相乘,最后用输出语句改变下格式就可以了。

五、调试过程及实验结果

1

算出来的并没有按照表格输出

改System.out.println (" "); 中println后的ln就可以改变换行了,

2

六、总结

通过第一小题的练习,让我加强了对for循环语句和输出函数的使用。

经过第二小题的练习,我懂得了什么是回文数,并且用.reverse(),反转字符串来反转,然后将反转后的数字和之前的数字进行比较。

七、附录(代码):

9*9乘法表:

class Test{

public static void main (String[] args) {

for(int i=1;i<=9;i++)

{

for(int j=1;j<=i;j++)

{

System.out.print (j+"*"+i+"="+i*j+" ");

}

System.out.println (" ");

}

}

}

判断回文数:

class Test {

public static void main(String[] args) {

String str = "1234554321";

boolean huiwenshu = new StringBuilder(str).reverse().toString().equals(str);

System.out.println (str);

System.out.println(huiwenshu);

}

}

堆栈方式实现字符回文数判断(可运行)

设线性表A中有n个字符,试设计程序判断字符串是否中心对称,例如xyzyx和xyzzyx都是中心对称的字符串。 #include #include #include #include using namespace std; #define max 100 typedef char elemtype; typedef struct node { elemtype data; struct node *next; }listack; void initstack(listack *&s) { s=(listack*)malloc(sizeof(listack)); s->next=NULL; } int stacklength(listack *s) { int i=0; listack *p; p=s->next; while(p!=NULL) { i++; p=p->next; } return i; } void clearstack(listack *s) { listack *p=s->next; while(p!=NULL) { free(s); s=p; p=p->next; } } int stackempty(listack *s) { return(s->next==NULL);

void push(listack *& s,elemtype e) { listack *p; p=(listack*)malloc(sizeof(listack)); p->data=e; p->next=s->next; s->next=p; } int pop(listack *&s,elemtype &e) { listack *p; if(s->next==NULL) return 0; p=s->next; e=p->data; s->next=p->next; free(p); return 1; } int gettop(listack *s,elemtype &e) { if(s->next==NULL) return 0; e=s->next->data; return 1; } int judge(char *str) { listack *s;elemtype e; initstack(s); char *p=str; while(*p!='#') { push(s,*p); p++; } while(!stackempty(s)) { pop(s,e); if(e!=*str) return 0; str++; } return 1;

SQL中的case-when,if-else实例

create database EXAM go create table student (stuName varchar(10)not null, stuNO int primary key not null, stuSex char(2)check(stuSex='男'or stuSex='女'), stuAge int, stuSeat int, stuAddress varchar(40) ) GO insert into student values('张秋丽','25301','女','21','1','北京海淀'), ('李文才','25302','男','25','2','天津'), ('张三','25303','男','22','3','北京海淀'), ('红尘','25304','女','21','4','湖南长沙'), ('段林希','25305','女','20','5','江西赣州'), ('魏晨','25306','男','23','6','河北石家庄'), ('郑爽','25307','女','20','7',''), ('张杰','25308','男','21','8',''), ('王洁','25309','女','23','9','湖南怀化'), ('刘欣','253010','女','21','10','北京') create table exam (ExamNO int primary key, stuNO int not null, WrittenExam int, LabExam int ) GO insert into exam values(01,250301,86,89), (02,250302,67,78), (03,250303,76,80), (04,250304,79,56), (05,250305,56,63), (06,250306,67,60), (07,250307,90,83), (08,250308,80,79), (09,250309,92,90), (10,250310,55,58)

C语言回文数猜想

2.7.1.1 练习1 回文数的猜想 1输入一个数 2一个数,加上是这个数的倒序数,得出结果 3判断是否为回文数,是就退出,否则返回第2步骤 回文数:1336331、9559 典型:输入1735 1753+3571=5324 5324+4235=9559 9559就是一个回文数 程序解答过程: 1设计出各函数功能,便于调用 2编码,解答 各函数功能: 输入数据:int input(void) 对数据取逆序:int reverse(int data) 判断回文数:int ispalin(int data) 溢出判断:int isover(int data //palin.c #include int input(void) { int data=-1;//防止赋值失败? for(;;) { scanf("%d",&data); if(data>=10)//使得输入的数字不小于10 break; scanf("%*[^\n]");//取得除了换行\n之外的所有字符,抛掉 scanf("%*c");//抛掉换行\n } return data; }

int reverse(int data) { int res=0; for(;data>0;data=data/10)//取得data的的逆序 res=res*10+data%10;//data%10取得data最后一位数字 return res; } int ispalin(int data) { return data==reverse(data); } int isover(int data) { return data<=0||reverse(data)<=0;//当data大小越界,即超过2^31-1,变成负数 } int main() { int data=input(); int i; for(i=0;!isover(data);data+=reverse(data)) { if(!ispalin(data)) printf("[%d]:%d+%d=%d\n",++i,data,reverse(data),data+reverse(data)); else { printf("Palin:%d\n",data); return 0; } } printf("Can not find Palin!\n"); return 0; } 知识:unsigned int:2^32-1 int : 2^31-1 超过了最大值会越界,越界的数会变成负数

Java第一次作业-回文素数

《Java语言》课程作业 (第一次) 题目第8题 学院计算机学院专业 班别 学号 姓名陈聪 2015年4月22日

一、课程题目 8、题目:回文素数 回文素数是指一个数同时为素数和回文数。例如:131是一个素数,同时也是一个回文数。数字313和757也是如此。编写程序,显示前100个回文素数,每行显示10个数并且准确对齐,如下所示: 2 3 5 7 11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929 ……. …. …. ………………. [选题人数:3] 二、题目分析与设计 1、题目的需求:编写程序,显示前100个回文素数,每行显示10个数并且准确对齐。 2、制定对应程序的功能: (1)将2以后的素数挑选出来,直到显示完前100个回文素数:利用for循环。 (2)判断挑选出来的素数是否为回文数:通过将原素数倒置再与原素数比较来判断。 (3)输出回文素数,同时判断是否要换行,通过确定位数来使回文素数准确 对齐。 3、(1)程序功能层次图: (2)程序结构流程图:

4、所使用的开发环境:Eclipse (1)判断一个数是否为素数: i=2; while(i

while(s!=0) { b=b*10+s%10; s=s/10; } (3)判断素数是否为回文数并输出: if(a==b) { n++; if(n%10==0) System.out.printf("%8d\n",a); else System.out.printf("%8d",a); } 三、测试分析 1、题目的需求:编写程序,显示前100个回文素数,每行显示10个数并且准确对齐。因此本程序不需要构建测试数据。 2、运行程序的结果如下: 所得到的前一百个回文素数与预计结果一致,格式正确,每行显示10个数并且准确对齐。 附录:源代码 package hui; public class huiwen{ public static void main(String args[]){ int a,b,s;

项目开发中常用到的SQL语句

项目开发中常用到的SQL语句1、循环示例 循环示例代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DECLARE @i int DECLARE @name varchar(10) DECLARE @password varchar(10) Set @i = 1000 WHILE @i < 1200 BEGIN Set @i =@i +1 SET @name = RIGHT('0000' + CAST(@i AS varchar(10)),4) set @password = @name select @name insert into dbo.LocomotiveTeminalBase (li_ID,t_ID,lt_IDNumber,lt_MiM,lt_FuWQIP,lt_FuWQDKH,lt_CreatedBy) values('d82575c0-2d21-4c47-a406-7771d7d2c80a','fb5d9a7b-9cd6-4a55-9e90-881706eaf @name,@password,'192.168.1.187','2000','9015c234-e185-4e15-96c6-f53426dd6690') END 2、数据库缓存依赖中用到的SQL语句代码示例: ? 1 2 3 4 5 6 7 8 --查看状态 Select DATABASEpRoPERTYEX('soft_LocomotiveRM_DB','IsBrokerEnabled') --启用broker ALTER DATABASE soft_LocomotiveRM_DB SET NEW_BROKER WITH ROLLBACK IMMEDIATE ALTER DATABASE soft_LocomotiveRM_DB SET ENABLE_BROKER --添加用户

数据结构C语言版判断回文数试验报告

. 数据结构实验报告判断回文数 级班: 内序号班: 名生姓学: 教师导指: 时间: 201124月年10日

一、实验目的'. . 熟悉栈和队列的各项操作,区别栈和队列的操作原理。 二、实验内容 利用栈的操作完成读入的一个以*结尾的字符序列是否是回文序列的判断。 回文序列即正读与反读都一样的字符序列,例如:43211234*是回文序列,而789678*不是。三、数据结构及算法思想 算法思想:从键盘上读取一个字符,同时存储在顺序栈与链队列之中,直到字符序列的最后一个字符为*停止插入。在程序中设置了一个标志位flag,将输入的序列分别做入栈、出栈、入队、出队操作,若出栈与出队的数据完全一致,则将flag标志为1,否则为零。Flag为1,则表示该序列是回文序列,否则,为非回文序列。 四、模块划分 1.对各个模块进行功能的描述 (1)void InitStack(SeqStack *S):栈初始化模块,即初始化一个空栈,随后对该空栈进行数据的写入操作; (2)int Push(SeqStack *S,char x,int cnt):入栈操作,即给空栈中写入数据,数据长度有宏定义给出; (3)int Pop(SeqStack * S,char * x):出栈操作,即将栈中的数据输出,由于栈的操作是先进后出,因此,出栈的数据是原先输入数据的逆序; (4)void InitQuene(SeqQuene *Q):队列初始化,即初始化一个空队列,最后对该空队列进行数据的写入操作; (5)int EnterQuene(SeqQuene *Q,char x,int cnt):入队操作,即给空队列中写入数据,数据长度一样有宏定义给出; (6)int DeleteQuene(SeqQuene *Q,char *x,int cnt):出队操作,即将队列中的数据输出,由于队列的操作是先进先出,因此,出队的数据室原先输入数据的正序; (7)void main():主函数,用于调用前面的模块,进行出队数据与出栈数据的比较,判断输入的序列是否是回文序列。 2.模块之间关系及其相互调用的图示 '. .

DB2常用SQL语句集

DB2常用SQL语句集 1、查看表结构: describe table tablename describe select * from tablename 2、列出系统数据库目录的内容: list database directory 3、查看数据库配置文件的内容: get database configuration for DBNAME 4、启动数据库: restart database DBNAME 5、关闭表的日志 alter table TBLNAME active not logged inially 6、重命名表 rename TBLNAME1 to TBLNAME2 7、取当前时间 select current time stamp from sysibm.sysdummy1 8、创建别名 create alias ALIASNAME for PRONAME(table、view、alias、nickname) 9、查询前几条记录 select * from TBLNAME fetch first N rows 10、联接数据库 db2 connect to DB user db2 using PWD 11、绑定存储过程命令 db2 bind BND.bnd 12、整理优化表 db2 reorgchk on table TBLNAME db2 reorg table TBLNAME db2 runstats on table TBNAME with distribution and indexes all 13、导出表 db2 export to TBL.txt of del select * from TBLNAME db2 export to TBL.ixf of ixf select * from TBLNAME 以指定分隔符‘|’下载数据: db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode”14、导入表 db2 import from TBL.txt of del insert into TBLNAME db2 import from TBL.txt of del commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert_update into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 replace into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 create into TBLNAME (仅IXF) db2 import from TBL.ixf of ixf commitcount 5000 replace_create into TBLNAME (仅 IXF) 以指定分隔符“|”加载:

1004 绝对回文数

绝对回文数 Time Limit:10000MS Memory Limit:65536K Total Submit:30 Accepted:16 Description 绝对回文数,即其十,二进制均为回文,输入一个n值(<=100000),判断其是否为绝对回文数(二进制最前面的0不能算) ,若不是,输出”no”(不包括引号),若是,请按格式十进制值(二进制值),比如n=99时,其为绝对回文数,则输出99(1100011) 。 Input 一个n值。 Output 一行,按文中要求输出相应结果。 Sample Input 99 Sample Output 99(1100011) Source

?var ? i,j,n,l,l2:longint; ? a,b:array[1..100] of longint; ? bbt,flag:boolean; ?begin ? readln(n); ? l:=0; j:=n; ? while j<>0 do begin ? inc(l); ? a[l]:=j mod 10; j:=j div 10; ? end; ? l2:=0; j:=n; ? while j<>0 do begin ? inc(l2); ? b[l2]:=j mod 2; j:=j div 2; ? end; ? flag:=true; bbt:=true; ? for i:=1 to l div 2 do if a[i]<>a[l-i+1] then begin ? bbt:=false; break; ? end; ? if not bbt then flag:=false; ? bbt:=true; ? for i:=1 to l2 div 2 do if b[i]<>b[l2-i+1] then begin ? bbt:=false; break; ? end; ? if not bbt then flag:=false; ? if flag then begin ? for i:=1 to l do write(a[i]); write('('); ? for i:=1 to l2 do write(b[i]); ? writeln(')'); ? end ? else writeln('no'); ?end.

sql循环语句的写法

sql循环语句的写法 SQL循环语句 declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+1 end --------------- while 条件 begin 执行操作 set @i=@i+1 end WHILE 设置重复执行SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用BREAK 和CONTINUE 关键字在循环内部控制WHILE 循环中语句的执行。语法WHILE Boolean_expression { sql_statement | statement_block } [ BREAK ] { sql_statement | statement_block } [ CONTINUE ] 参数

Boolean_expression 返回TRUE 或FALSE 的表达式。如果布尔表达式中含有SELECT 语句,必须用圆括号将SELECT 语句括起来。{sql_statement | statement_block} Transact-SQL 语句或用语句块定义的语句分组。若要定义语句块,请使用控制流关键字BEGIN 和END。BREAK 导致从最内层的WHILE 循环中退出。将执行出现在END 关键字后面的任何语句,END 关键字为循环结束标记。CONTINUE 使WHILE 循环重新开始执行,忽略CONTINUE 关键字后的任何语句。注释 如果嵌套了两个或多个WHILE 循环,内层的BREAK 将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。示例 A. 在嵌套的IF...ELSE 和WHILE 中使用BREAK 和CONTINUE 在下例中,如果平均价格少于$30,WHILE 循环就将价格加倍,然后选择最高价。如果最高价少于或等于$50,WHILE 循环重新启动并再次将价格加倍。该循环不断地将价格加倍直到最高价格超过$50,然后退出WHILE 循环并打印一条消息。USE pubs GO WHILE (SELECT A VG(price) FROM titles) < $30 BEGIN

实验10 T-SQL语言编程基础

实验十 T-SQL语言编程基础 姓名:学号: 专业:网络工程班级: 同组人:无实验日期:2012-4-19【实验目的与要求】 1.熟练掌握变量的定义和赋值。 2.熟练掌握各种运算符。 3.熟练掌握流程控制语句,尤其是条件语句和循环语句。【实验内容与步骤】 10.1. 变量的定义与输出 1.变量的定义和赋值 1) 局部变量的声明: DECLARE @variable_name DataType 例如: declare @stuname varchar(20)--声明一个存放学员姓名的变量stuname. declare @stuseat int--声明一个存放学员座位号的变量stuseat 2) 局部变量的赋值: 局部变量的赋值有两种方法: a) 使用Set语句 Set @variable_name=value b) 使用Select语句 Select @variable_name=value 实验: 运行以下程序段,理解变量的使用。

--局部变量的赋值与使用 declare @customer_name varchar(20)--声明变量用来存放客户名称 set @ customer_name ='家电市场'--使用SET语句给变量赋值 select* from xss where客户名称=@customer_name --通过局部变理向sql语句传递数据 请给出运行结果: 练习: 创建一名为 Product_name的局部变量,并在SELECT语句中使用该变量查找“冰箱”的”价格”和”库存量”。 给出相应的语句 declare @Product_name varchar(20) set @Product_name ='冰箱' select价格,库存量 from CP where产品名称= @Product_name 请给出运行测试结果:

实验7_T-SQL语言编程基础[1]1

实验七T-SQL语言编程基础 【实验目的与要求】 1.熟练掌握变量的定义和赋值。 2.熟练掌握各种运算符。 3.熟练掌握流程控制语句,尤其是条件语句和循环语句。 【实验内容与步骤】 一、准备实验数据 CPXS数据库包含如下三个表: CP(产品编号,产品名称,价格,库存量); XSS(客户编号,客户名称,地区,负责人,电话); CPXSB(产品编号,客户编号,销售日期,数量,销售额); 三个表结构如图2.1~图2.3所示,请在企业管理器中完成表的创建。 图2.1CP表结构

图2.2XSS表结构 图2.3CPXSB表结构 2.1数据写入操作 在企业管理器中输入如图2.4~图2.6的CP表、XSS表和CPXSB表的样本数据。 图2.4CP表的样本数据

图2.5XSS表的样本数据 图2.6CPXSB表的样本数据 10.1.变量的定义与输出 1.变量的定义和赋值 1)局部变量的声明: DECLARE@variable_name DataType 例如: declare@stuname varchar(20)--声明一个存放学员姓名的变量stuname. declare@stuseat int--声明一个存放学员座位号的变量stuseat 2)局部变量的赋值: 局部变量的赋值有两种方法: a)使用Set语句 Set@variable_name=value b)使用Select语句 Select@variable_name=value 实验: 运行以下程序段,理解变量的使用。 --局部变量的赋值与使用 declare@customer_name varchar(20)--声明变量用来存放客户名称set@customer_name='家电市场'--使用SET语句给变量赋值select* from xss where客户名称=@customer_name--通过局部变理向sql语句传递数据请给出运行结果:

SQL循环语句的写法

SQL循环语句的写法 SQL循环语句 declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+1 end --------------- while 条件 begin 执行操作 set @i=@i+1 end WHILE 设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。 语法 WHILE Boolean_expression { sql_statement | statement_block } [ BREAK ] { sql_statement | statement_block } [ CONTINUE ] 参数 Boolean_expression 返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,必须用圆括号将 SELECT 语句括起来。 {sql_statement | statement_block} Transact-SQL 语句或用语句块定义的语句分组。若要定义语句块,请使用控制流关键字 BEGIN 和 END。 BREAK

导致从最内层的 WHILE 循环中退出。将执行出现在 END 关键字后面的任何语句,END 关键字为循环结束标记。 CONTINUE 使 WHILE 循环重新开始执行,忽略 CONTINUE 关键字后的任何语句。 注释 如果嵌套了两个或多个 WHILE 循环,内层的 BREAK 将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。 示例 A. 在嵌套的 IF...ELSE 和 WHILE 中使用 BREAK 和 CONTINUE 在下例中,如果平均价格少于 $30,WHILE 循环就将价格加倍,然后选择最高价。如果最高价少于或等于 $50,WHILE 循环重新启动并再次将价格加倍。该循环不断地将价格加倍直到最高价格超过 $50,然后退出 WHILE 循环并打印一条消息。 USE pubs GO WHILE (SELECT AVG(price) FROM titles) < $30 BEGIN UPDATE titles SET price = price * 2 SELECT MAX(price) FROM titles IF (SELECT MAX(price) FROM titles) > $50 BREAK ELSE CONTINUE END PRINT 'Too much for the market to bear' B. 在带有游标的过程中使用 WHILE 以下的 WHILE 结构是名为 count_all_rows 过程中的一部分。下例中,该 WHILE 结构测试用于游标的函数 @@FETCH_STATUS 的返回值。因为 @@FETCH_STATUS 可能返回–2、-1 或 0,所以,所有的情况都应进行测试。如果某一行在开始执行此存储过程以后从游标结果中删除,将跳过该行。成功提取(0) 后将执行 BEGIN...END 循环内部的 SELECT 语句。 USE pubs DECLARE tnames_cursor CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

数据结构课程设计回文数问题

湖南科技学院 课程设计报告 课程名称:数据结构课程设计 课程设计题目:02、回文问题 系: 专业: 年级、班: 姓名: 学号: 指导教师: 职称: 2011年12月

目录 1.问题描述 ----------------------------------------------------------------------3 2.具体要求 ----------------------------------------------------------------------3 3.测试数据 ----------------------------------------------------------------------3 4.算法思想 ----------------------------------------------------------------------3 5.模块划分 ----------------------------------------------------------------------4

6.数据结构 ----------------------------------------------------------------------4 7.源程序 ------------------------------------------------------------------------7 8.测试情况 --------------------------------------------------------------------14 9.设计总结 --------------------------------------------------------------------14 10.参考文献 --------------------------------------------------------------------15 一、问题描述

大数据的库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old defini tion only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement

C++回文数的形成

C++回文数的形成 回文数的形成规则不知道数学上有没有证明。如果有的话,朋友可以告诉我,这里通过编程验证。 规则:任意的一个的十进制的整数,将其转过来后和原来的整数相加,得到新的整数后重复以上步骤,最终可以得到一个回文数。 #include #define MAX 2147483648 //限制M+N的范围 long re(long int a)//求输入整数的反序 { long int t; for(t=0;a>0;a/=10)//将整数反序 t=t*10+a%10; return t; } int nonre(long int s)//判断给定的整数是否为回文数 { if(re(s)==s) return 1;//是返回1 else return 0;//不是返回0 } void main() { long int n,m; int count=0; printf("please input a number optionaly:"); scanf("%ld",&n);

printf("The genetation process of palindrome:\n"); while(!nonre((m=re(n))+n))//判断整数与其反序相加后是否为回文数{ if((m+n)>=MAX)//超过界限输出提示信息 { printf("input error,break.\n"); break; } else { printf("[%d]:%ld+%ld=%ld\n",++count,n,m,m+n); n+=m;//累加 } } printf("[%d]:%d+%ld=%ld\n",++count,n,m+n); printf("Here we reached the aim at last.\n");//输出得到的回文数}

分享高性能批量插入和批量删除sql语句写法

分享高性能批量插入和批量删除sql语句写法 一,技术水平总能在扯皮和吹毛求疵中得到提高。如果从来不“求疵”,可能就不会知道if(str != "")不如if(str != string.Empty)高效、批量插入和删除的sql语句是要那样写才执行最快、接口和抽象类的区别不仅是语言层面、原来权限管理是要这样设计的、某个类那样设计职责才更单一更易于扩展…… 本来前两篇文章是学习cnblogs编辑控件用的,看到跟贴的朋友询问批量插入和批量删除的问题,决定整理成文和大家分享。 我们这里讨论的只是普通sql语句如何写更高效,不考虑特殊的用文件中转等导入方式,毕竟在代码中调用sql语句或存储过程才更方便。 批量删除很简单,大家可能都用过: DELETE FROM TestTable WHERE ID IN (1, 3, 54, 68) --sql2005下运行通过 当用户在界面上不连续的选择多项进行删除时,该语句比循环调用多次删除或多条delete语句中间加分号一次调用等方法都高效的多。 本文重点讲述的是批量插入的写法: sql写法: INSERT INTO TestTable SELECT 1, 'abc' UNION SELECT 2, 'bcd' UNION SELECT 3, 'cde' --TestTable表没有主键,ID不是主键 oracle写法: INSERT INTO TestTable SELECT 1, 'abc' From daul UNION SELECT 2, 'bcd' From daul --TestTable表没有主键,ID不是主键 曾经测试过,这种写法插入1000条数据比循环调用1000次insert或1000条insert语句简单叠加一次调用要高效得多,大概快20多倍(调试状态不是太准)。其实很简单,就用了个union (union all 也可以),但当时得出测试结果时还是很惊喜的。 要得出这个结果需要两个条件: 1、表不能有主键或者主键是数据库默认的(sql用自动递增列,oracle用序列) 2、组合sql语句时只能直接用字符串连接,不能用参数化sql语句的写法(就是在组合的sql中用@parm做占位符,再给Command对象添加Parameter)

SQL循环语句

在sqlserver 数据库中,循环语句是最常用的语句之一,下面就将为您分析SQL循环语句的例子,供您参考,希望对您有所启迪。 SQL循环语句 declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+1 end -------------------------- while 条件 begin 执行操作 set @i=@i+1 end WHILE 设置重复执行SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用BREAK 和CONTINUE 关键字在循环内部控制WHILE 循环中语句的执行。 语法 WHILE Boolean_expression { sql_statement | statement_block } [ BREAK ] { sql_statement | statement_block } [ CONTINUE ] 参数 Boolean_expression 返回TRUE 或FALSE 的表达式。如果布尔表达式中含有SELECT 语句,必须用圆括号将SELECT 语句括起来。 {sql_statement | statement_block} Transact-SQL 语句或用语句块定义的语句分组。若要定义语句块,请使用控制流关键字BEGIN 和END。 BREAK 导致从最内层的WHILE 循环中退出。将执行出现在END 关键字后面的任何语句,END 关键字为循环结束标记。 CONTINUE 使WHILE 循环重新开始执行,忽略CONTINUE 关键字后的任何语句。 注释 如果嵌套了两个或多个WHILE 循环,内层的BREAK 将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。 示例 A. 在嵌套的IF...ELSE 和WHILE 中使用BREAK 和CONTINUE 在下例中,如果平均价格少于$30,WHILE 循环就将价格加倍,然后选择最高价。如果最

显示前100个回文素数

回文素数是指一个数同时为素数和回文数。例如:131是一个素数,同时也是一个回文素数。数字313和757也是如此。编写程序,显示前100个回文素数。每行显示10个数并且标准对齐,如下所示: 程序如下: public class xt { public static void main(String[] args){ int count = 1; int i = 2 ; while(count <= 100){ if(isPrime(i) && isPalindrome(i)){ if(count % 10 == 0){ System.out.printf("%10s\n", i); } else{ System.out.printf("%10s", i); } count ++; i++; } else{ i++; } } } //判断一个数是否为素数 private static boolean isPrime(int Number){ boolean primeBool = true; for(int i = 2;i <= (int)(Math.sqrt(Number));i++){ if(Number % i == 0){ primeBool = false; break; } } return primeBool;

} //判断一个数是否为回文数 private static boolean isPalindrome(int number){ if(number == reverse(number)){ return true; } else{ return false; } } //求一个数的反向数 private static int reverse(int number1){ int number2 = 0; while(number1 != 0){ number2 = number2 * 10 +number1 % 10; number1 = number1 / 10; } return number2; } }

java实验报告回文数

《Java程序设计》实验报告 实验二:回文数 专业班级:通信工程2008级1班姓名: 学号: 时间: 实验二:回文数 1、实验目的:

让学生掌握if-else if多分支语句。 2、实验要求: 编写一个java应用程序,实现如下功能: ※用户从键盘输入一个1~99999之间的整数。 ※程序判断这是几位数,并判断这个数是否是回文数。(回文数是指将该数含有的数字逆序排列后得到的和原数相同。如12121和3223都是回文数。) 3、程序效果图(各位同学的效果图应该各不相同!) 4、程序代码(主要语句有注释!) 5、实验思考问题

6、实验总结及心得程序模板:

Number.java import java.util.*; public class Number { public static void main(String args[]) { int number=0,d5,d4,d3,d2,d1; Scanner reader=new Scanner(System.in); System.out.println("从键盘输入一个1至99999之间的数"); while(reader.hasNextInt()) { number=reader.nextInt(); if(【代码1】) // 判断number在1至99999之间的条件 { 【代码1】// 计算number的最高位(万位)d5 【代码2】// 计算number的千位d4 【代码3】// 计算number的百位d3 d2=number%100/10; d1=number%10; if(【代码4】) // 判断number是5位数的条件 { System.out.printf("\n%d是5位数", number); If (【代码5】) // 判断number是回文数的条件 { System.out.printf("\t%d是回文数", number); } else { System.out.printf("\t%d不是回文数", number); } } else if (【代码6】) // 判断number是4位数的条件 { System.out.printf("\n%d是4位数",number); If (【代码7】) // 判断number是回文数的条件码 { System.out.printf("\t%d是回文数", number); } else { System.out.printf("\t%d不是回文数",number); } } else if (【代码8】) // 判断number是3位数的条件

相关主题
文本预览
相关文档 最新文档