首页 > 股票视频 > 999abc
2020
06-05

999abc

SQL 每月的3流水号,超过999用ABC表示

何必要如此呢,扩大位数岂不更好?

下面是你需要的代码主体,具体参数定义看注释。

---定义当前的流水号,可以从数据库中获取,此处为测试值

DECLARE@CURR_LSHVARCHAR(7)

---新流水号

DECLARE@LSHVARCHAR(7)

---旧流水号第5位

DECLARE@FIRSTCHARVARCHAR(1)

---旧流水号最后2位的数值

DECLARE@LASTCHAR2INT

---旧流水号第5位的asc码

DECLARE@FIRSTCHARASCIIINT

---新的后3位流水号

DECLARE@LASTCHAR3NEWVARCHAR(3)

---测试的旧流水号

SET@CURR_LSH='B307Z98'

---定义当前年份最后1位和两位的月份

DECLARE@YEARVARCHAR(1)

DECLARE@MONTHVARCHAR(2)

SET@YEAR=SUBSTRING(CONVERT(VARCHAR,DATEPART(YEAR,GETDATE())),4,1)

SET@MONTH=RIGHT('0'+CONVERT(VARCHAR,DATEPART(MONTH,GETDATE())),2)

SET@FIRSTCHAR=SUBSTRING(@CURR_LSH,5,1)

SET@FIRSTCHARASCII=ASCII(@FIRSTCHAR)

---@FIRSTCHARASCII48-57表示0-9,65-90表示A-Z

SET@LASTCHAR2=CONVERT(INT,SUBSTRING(@CURR_LSH,6,2))

IF@LASTCHAR2<99

BEGIN

SET@LASTCHAR3NEW=@FIRSTCHAR+RIGHT('00'+CONVERT(VARCHAR,@LASTCHAR2+1),2)

END

ELSE

BEGIN

IF@FIRSTCHARASCII<57

SET@LASTCHAR3NEW=CONVERT(VARCHAR,CONVERT(INT,@FIRSTCHAR+'00')+CONVERT(INT,RIGHT('00'+CONVERT(VARCHAR,@LASTCHAR2+1),3)))

ELSEIF@FIRSTCHARASCII=57

SET@LASTCHAR3NEW='A00'

ELSE

SET@LASTCHAR3NEW=CHAR(@FIRSTCHARASCII+1)+'00'

END

---输出你需要的新流水号

SET@LSH='B'+@YEAR+@MONTH+@LASTCHAR3NEW

---打印出来

PRINT@LSH

参考了第一位兄弟的答案

DECLARE@KeyINT

DECLARE@ASCIIINT

DECLARE@PreKeyVARCHAR(32)

DECLARE@SerialNoVARCHAR(32)

--取已经存在的最大值(需要自行修改一下)

IFNOTEXISTS(SELECTSerialNoFROMtable)

SET@SerialNo='B000000'

ELSE

SELECT@SerialNo=SerialNoFROMtbale

--计算新的前缀

SET@PreKey=LEFT(@SerialNo,1)

SELECT@prekey=@prekey

+CAST(RIGHT(DATEPART(year,GETDATE()),1)*100

+DATEPART(MONTH,GETDATE())ASVARCHAR(32))

--计算流水号部分

SET@key=RIGHT(@SerialNo,2)

IF@Key=99

BEGIN

SET@ASCII=ASCII(LEFT(RIGHT(@SerialNo,3),1))+1

SET@key=0

END

ELSE

BEGIN

SET@ASCII=ASCII(LEFT(RIGHT(@SerialNo,3),1))

SET@key=@key+1

END

IF@ASCII=58

SET@ASCII=65

IF@ASCII>90

GOTOErr

--输出最终的编号

SELECT@PreKey+CHAR(@ASCII)+RIGHT('00'+CAST(@keyASVARCHAR),2)

澳伦特价数码www.abc999shop.cn 上卖的东西为什么那么便宜~?看了让人很心动

我去看了一下,绝对是骗子公司,现在很来多这种网站,大家要小心,超出正常合理价格很多的东西就要注意.有几个办法可以验证是不是骗子公司:1.到太平洋或者中关村在线看看正常报价,少很多的就要小心了源.2.卖东西都要求打现金,不能用支付宝或其他的比较可靠的网购渠道.3.看地址,看有没有那边的朋友,叫他(她bai)去看看.4.看电话,都是手机就不用讲了,如果留了固定电话号码看是不是小灵du通的,可以拨打当地的zhi10000(电信)10060(网通)查询,如果是小灵通的就...5.(最有效的,屡试不爽的方法)直接打电话给网站的电话,说到了他们公司所在的城市了(最好用手机拨打),想去当面交易.如果对方说公司放假、没空、dao不接受当面交易等,那99%就是骗子了。

写程序(在100--999中 输出满足abc=a*a*a+b*b*b+c*c*c的数。) 在下面的程序中,什么地方出错了,帮忙找一下

程序不是只写给机bai器看的,养成一个好习惯du,查问题也方便

#include

intmain()

{

inti;

for(i=100;i<=999;i++)

{

zhiinta,b,c,abc;

abc=i;

a=i/100;//取百位dao

b=(i%100)/10;//先取专到两位数,再取十位

c=i%10;//取个位属数

if(abc==a*a*a+b*b*b+c*c*c)

printf("%d\n",i);

}

getchar();

return0;

}

if(i==(i/100)*(i/100)*(i/100)+((i-i/100*100)/10)*((i-i/100*100)/10)*((i-i/100*100)/10)+(i-i/10*10)*(i-i/10*10)*(i-i/10*10))

多了一2113个5261括号)4102,倒1653数第专二个属

用java求100-999中的水仙花数,(若三位数abc,abc=a^3+b^3+c^3, 则称abc为水仙花数。如153,1^3+5^3+

publicstaticvoidmain(String[]args){

//第一种方bai法du

/*intm,a,b,c;

for(inti=100;i<1000;i++){

m=i;

c=m%10;

b=(m/10)%10;

a=m/100;

if(m==a*a*a+b*b*b+c*c*c){

System.out.println("\t"+m);

}

}*/

//第二种方法

inta,b,c,m;

for(inti=1;i<=9;i++){//a为百位zhi数字,不能为dao0

a=i;

for(intj=0;j<=9;j++){

b=j;

for(intk=0;k<10;k++){

c=k;

m=a*100+b*10+c;

if(m==a*a*a+b*b*b+c*c*c){

System.out.println("\t"+m);

}

}

}

}

}

publicstaticvoidmain(String[]args){

inta,b,c;

inte,f;

for(inti=0;i<10;i++){

a=i;

for(intj=0;j<10;j++){

b=j;

for(intk=0;k<10;k++){

c=k;

e=a*a*a+b*b*b+c*c*c;

f=a*100+b*10+c;

if(f.equals(e)){

System.out.println(a);

System.out.println(b);

System.out.println(c);

System.out.println(f);

}

}

}

}

}

我是刚学java就用的for循环楼主看看吧

publicclassTest1{

1653publicstaticvoidmain(String[]args){

内System.out.println("水仙花数:");

for(inti=100;i<999;i++){

inta=i;//取100-999整数

intb1,b2,b3;

b1=a%10;//个位

b2=(a/10)%10;//十位

b3=a/100;//百位容

intsum=b1*b1*b1+b2*b2*b2+b3*b3*b3;

if(a==sum){

System.out.println(a);

}

}

}

}

public?class?ShuX?{

public?static?void?main(String[]?args)?{

int?b1,?b2,?b3;

for(int?m=101;?m<1000;?m++)?{

b3?=?m?/?100;

b2?=?m?%?100?/?10;

b1?=?m?%????10;

if((b3*b3*b3?+?b2*b2*b2?+?b1*b1*b1)?==?m)?{

System.out.println(m+"是一2113个5261水4102仙1653花专数属");?}

}

}

}

publicstaticvoidmain(String[]args){

for(inti=100;i<1000;i++){

intn,nn,nnn;

nnn=i/100;

nn=(i-nnn*100)/10;

n=i-nnn*100-nn*10;

if(i==n*n*n+nn*nn*nn+nnn*nnn*nnn){

System.out.println(i);

}

}

}

C语言:输出100-999中所有水仙花数。

//输出水仙花2113

{for(inti=100;i<1000;i++)

{

intsum=0;

inttemp=i;

intrem;

for(intj=0;j<3;j++)

{rem=temp%10;

temp/=10;

sum+=rem*rem*rem;

}if(sum==i)

{

printf("%d\n",i);

}

}

}

扩展资料

C语言5261:输4102出9*9口诀

#include"stdio.h"

main()

{

inti,j,result;

printf("\n");

for(i=1;i<10;i++)

{for(j=1;j<10;j++)

{

result=i*j;

printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐1653,占3位*/

}

printf("\n");/*每一内行后换行容*/

}

}

在100-999之间的三位数ABC,满足A3+B3+C3=ABC,就称ABC为水仙花数。

根据你的描述和提供的代码,只需要对输出的结果进行换行即可,修改后的代码如下:

#include

intmain()

{

inti,a,b,c;

for(i=100;i<=999;i++)

{

a=i/100;

b=i/10%10;

c=i%10;

if(i==a*a*a+b*b*b+c*c*c)

printf("%disadaffodilnumber.\n",i);

}

return0;

}

程序运行结果:

扩展资料:

除了上面使用的C语言实现外,常用的实现语言还有;

ALGOL代码实现“水仙花数”:

begin

integer?i,j,k;

for?i?:=?1?step?1?until?9?do

for?j?:=?0?step?1?until?9?do

for?k?:=?0?step?1?until?9?do

if?i×i×i?+?j×j×j?+?k×k×k?=?100×i?+?10×j?+?k?then

print?(100×i?+?10×j?+?k);

end

PHP代码实现“水仙花数”:

<?php

//使用系统自带函数,即可实现幂运算,何必画蛇添足,自己写函数

functionis_narcissistic($n)

{

$hundreds=floor($n/100);//分解出百位

$tens=floor($n/10)%10;//分解出十位

$ones=floor($n%10);//分解出个位

return(bool)(pow($hundreds,3)+pow($tens,3)+pow($ones,3)==$n);

}

for($i=100;$i<1000;++$i)

{

if(is_narcissistic($i))

echo$i."\n";

}

die();

?>

参考资料:百度百科-水仙花数

水仙花数是指一个n位数(n≥3),它的每个位上bai的数字的n次幂之和等于它本身。判断一个数是否du为水仙花数需要拆分数位,求幂再相加。不过这道题限zhi定了范围,都是三位数,所以可以使用3重循dao环分别代表3个数位,这回样就省去了拆分的麻烦。

代码如下:#include?

int?main()

{

int?i,?j,?k,?sum;

sum?=?0;

for?(i?=?1;?i?<?10;?i++)

答for?(j?=?0;?j?<?10;?j++)

for?(k?=?0;?k?<?10;?k++)

if?((i*i*i?+?j*j*j?+?k*k*k)?==?(i*100?+?j*10?+?k))

printf("%d\n",?i*100?+?j*10?+?k);

return?0;

}


留言与评论(共有 0 条评论)
   
验证码: