来用SQL语句算最大公约数了 分不多 就100...!

yhui1989love 2011-11-13 11:12:45
请用SQL语句求下列两个数的最大公约数:::


4294967294 3465465468

...全文
804 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhui1989love 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 roy_88 的回复:]
是更新不是新增

SQL code

update GCD_LCM
set gcd=dbo.GetGys (a,b),lcm=dbo.GetGbs(a,b)
[/Quote]

悲剧啊 为什么就给写成insert into鸟 ....
update后没有问题
中国风 2011-11-14
  • 打赏
  • 举报
回复
是更新不是新增
update  GCD_LCM
set gcd=dbo.GetGys (a,b),lcm=dbo.GetGbs(a,b)
yhui1989love 2011-11-14
  • 打赏
  • 举报
回复
ID a b GCD LCM
1 6 100 null null
2 9 93 null null
3 12 86 null null
4 15 79 null null
GCD和LCM插入对应的数 怎么写捏
INSERT INTO GCD_LCM (gcd,lcm)  SELECT dbo.GetGys (a,b),dbo.GetGbs(a,b) FROM GCD_LCM

语法分析没有错 但是执行不过去 !!!
中国风 2011-11-14
  • 打赏
  • 举报
回复
GO
Create FUNCTION fn_num(@a BIGINT,@b BIGINT)
RETURNS BIGINT
AS
BEGIN
DECLARE @c BIGINT
SET @c=@a%@b
WHILE @c>0
select @a=@b,@b=@c,@c=@a%@b
RETURN @b
END
GO

SELECT dbo.fn_num(4294967294,3465465468)
中国风 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yhui1989love 的回复:]

引用 6 楼 roy_88 的回复:
SQL code

DECLARE @a bigint,@b bigint,@c bigint
SET @a=4294967294
SET @b=3465465468
SET @c=@a%@b
WHILE @c>0
select @a=@b,@b=@c,@c=@a%@b
SELECT @b

你这个要是算两个列捏?
[/Quote]

寫成一個函數就行了
yhui1989love 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xiaolinyouni 的回复:]
查了一下,4294967295是.net上最大整数存储类型UInteger的上限.
超过了这个值,我真不知道如何写了.
sql中bigint的上限是2^63-1,我表示很强大...
如果
.net写法

VB.NET code

Dim a As UInteger = 4294967294
Dim b As UInteger = 346546546……
[/Quote]
搜噶 这两个数字不是我随便输入的哦!
如果数据库中就是有两列数字 需要求他们的最大公约数和最小公倍数 然后插入到新列中
怎么办?
并不是两个数 是两列!
苦苦的潜行者 2011-11-14
  • 打赏
  • 举报
回复
查了一下,4294967295是.net上最大整数存储类型UInteger的上限.
超过了这个值,我真不知道如何写了.
sql中bigint的上限是2^63-1,我表示很强大...
如果
.net写法
        Dim a As UInteger = 4294967294
Dim b As UInteger = 3465465468
Dim c As UInteger
Do
c = a Mod b
If c = 0 Then Exit Do
a = b
b = c
Loop While c >= 1
MsgBox(b)
'结果b=2
q465897859 2011-11-14
  • 打赏
  • 举报
回复
学习
yhui1989love 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 roy_88 的回复:]
SQL code

DECLARE @a bigint,@b bigint,@c bigint
SET @a=4294967294
SET @b=3465465468
SET @c=@a%@b
WHILE @c>0
select @a=@b,@b=@c,@c=@a%@b
SELECT @b
[/Quote]
你这个要是算两个列捏?
苦苦的潜行者 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 roy_88 的回复:]

SQL code
DECLARE @a bigint,@b bigint,@c bigint
SET @a=4294967294
SET @b=3465465468
SET @c=@a%@b
WHILE @c>0
select @a=@b,@b=@c,@c=@a%@b
SELECT @b
[/Quote]

膜拜!
  • 打赏
  • 举报
回复
辗转相除法。这么大的数使用biggint,如果数据再更大的话,是天文数字的画,那就麻烦了
yhui1989love 2011-11-14
  • 打赏
  • 举报
回复
/*求两个数的最大公约数*/
CREATE FUNCTION f_GetGys(@num1 BIGINT,@num2 BIGINT)
RETURNS BIGINT
AS
BEGIN
DECLARE @m BIGINT
DECLARE @i BIGINT
if(@num1<@num2)--确保@num1永远是大的 @num2永远是小的
BEGIN
SET @m = @num2
SET @num2 = @num1
SET @num1 = @m
END
SET @i=@num1%@num2
WHILE @i>0
BEGIN
select @num1=@num2,@num2=@i,@i=@num1%@num2
END
RETURN @num2
END
GO
/*求两个数的最小公倍数(调用了最大公约数函数,也可以直接写进去)*/
ALTER FUNCTION f_GetGbs(@num1 BIGINT,@num2 BIGINT)
RETURNS BIGINT
AS
BEGIN
DECLARE @a BIGINT
DECLARE @b BIGINT
DECLARE @c BIGINT
DECLARE @d BIGINT
SET @a = @num1
SET @b = @num2
SET @c = dbo.f_GetGys (@num1,@num2)
SET @d = @a*@b/@c
RETURN @d
END
GO

整理了下 以上是比较满意的答案了 编程语言是这种算法 SQL也可以...
感谢csdn 感谢 中國風 感谢F妹
不过F妹子那个是哪里搞来的 臭婆娘的裹脚啊 效率还很差
结贴 给分鸟 F姐 我总给你分 你是不是也给我点儿啊!!!!!
w556667788 2011-11-14
  • 打赏
  • 举报
回复
高,写的不错。我转载了,哈哈
快溜 2011-11-13
  • 打赏
  • 举报
回复
消遣题
中国风 2011-11-13
  • 打赏
  • 举报
回复
公约数为2
中国风 2011-11-13
  • 打赏
  • 举报
回复
DECLARE @a bigint,@b bigint,@c bigint
SET @a=4294967294
SET @b=3465465468
SET @c=@a%@b
WHILE @c>0
select @a=@b,@b=@c,@c=@a%@b
SELECT @b
chuanzhang5687 2011-11-13
  • 打赏
  • 举报
回复
create function GetGys(@num1 int,@num2 int)
returns int --返回值
as
begin
declare @times int --计数器
declare @min int --存储两个数的较小者
declare @result int --保存结果
if(@num1>=@num2)
set @min=@num2
else
set @min=@num1
set @times=@min
while(@times<=@min) --循环
begin
if(@num1%@times=0 and @num2%@times=0)
begin
set @result=@times
break
end
set @times=@times-1
end
return @result
end
--你这两个书的公因数太大,溢出
--小F-- 2011-11-13
  • 打赏
  • 举报
回复
/*求两个数的最大公约数*/
create function GetGys(@num1 int,@num2 int)
returns int --返回值
as
begin
declare @times int --计数器
declare @min int --存储两个数的较小者
declare @result int --保存结果
if(@num1>=@num2)
set @min=@num2
else
set @min=@num1
set @times=@min
while(@times<=@min) --循环
begin
if(@num1%@times=0 and @num2%@times=0)
begin
set @result=@times
break
end
set @times=@times-1
end
return @result
end


/*求两个数的最小公倍数*/
create function GetGbs(@num1 int,@num2 int)
returns int
as
begin
declare @result int --结果
declare @max int --保存两个数的大者
declare @times int
if @num1<=@num2
set @max=@num2
else
set @max=@num1
set @times=@max
while(@times>=@max)
begin
if(@times%@num1=0 and @times%@num2=0)
begin
set @result=@times
break
end
set @times=@times+1
end
return @result
end

最后测试:
运行
select dbo.GetGys(15,20) as 最大公约数,dbo.GetGbs(15,20) as 最小公倍数

显示结果:
最大公约数 最小公倍数
5 60赞同23| 评论
叶子 2011-11-13
  • 打赏
  • 举报
回复
最大公约数是2
chuanzhang5687 2011-11-13
  • 打赏
  • 举报
回复
楼下的 板凳我站鸟 碎觉去 明儿看各位大牛滴答案!!!!!!!!
加载更多回复(1)
第一篇 面试题 ................................................................................ 8 1.1. 简介 ............................................................................................................... 8 1.2. 面试题集合(一) .......................................................................................... 8 1.2.1. 把二元查找树转变成排序的双向链表.................................................... 8 1.2.2. 下排每个数都是先前上排那十个数在下排出现的次数 ..........................11 1.2.3. 设计包含 min 函数的栈 ...................................................................... 14 1.2.4. 求子数组的最大和.............................................................................. 20 1.2.5. 在二元树中找出和为某一值的所有路径 .............................................. 22 1.2.6. Top K 法详细解析---百度面试 ......................................................... 29 1.2.7. 翻转句子中单词的顺序....................................................................... 31 1.2.8. 判断整数序列是不是二元查找树的后序遍历结果 ................................ 33 1.2.9. 查找最小的 K 个元素-使用最大堆....................................................... 35 1.2.10. 求二叉树中节点的最大距离................................................................ 37 1.3. 面试题集合(二) ........................................................................................ 40 1.3.1. 求 1+2+…+n....................................................................................... 40 1.3.2. 输入一个单向链表,输出该链表中倒数第 k 个结点............................. 44 1.3.3. 输入一个已经按升序排序过的数组和一个数字.................................... 46 1.3.4. 输入一颗二元查找树,将该树转换为它的镜像.................................... 48 1.3.5. 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往 右的顺序打印................................................................................................... 49 1.3.6. 在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b 52 1.3.7. n 个数字(0,1,…,n-1)形成一个圆圈 .................................................. 53 1.3.8. 定义 Fibonacci 数列 ............................................................................ 58 1.3.9. 左移递减数列查找某一个数................................................................ 60 1.3.10. 对于一个整数矩阵,存在一种运,对矩阵中任意元素加一时,需要其相 邻(上下左右)某一个元素也加一 ................................................................... 63 1.4. 面试题集合(三) ........................................................................................ 73 1.4.1. 递归和非递归俩种方法实现二叉树的前序遍历.................................... 73 1.4.2. 请修改 append 函数,利用这个函数实现............................................. 78 1.4.3. 有 n 个长为 m+1 的字符串 ................................................................ 82 1.4.4. n 支 队伍比赛 ..................................................................................... 84 1.4.5. 求一个矩阵中最大的二维矩阵(元素和最大) ........................................ 86 1.4.6. 强大的和谐 ........................................................................................ 90 1.4.7. 通过交换 a,b 中的元素,使[序列 a 元素的和]与[序列 b 元素的和]之间的差最小 94 1.4.8. 计 1 到 N 的十进制数中 1 的出现次数 ............................................. 97 1.4.9. 栈的 push、pop 序列[数据结构] .......................................................... 99 1.4.10. 统计整数二进制表示中 1 的个数........................................................102 1.5. 面试题集合(四) .......................................................................................104 1.5.1. 跳台阶问题 .......................................................................................104 1.5.2. 左旋转字符串....................................................................................105 1.5.3. 在字符串中找出连续最长的数字串 ....................................................109 1.5.4. 链表操作........................................................................................... 111 1.5.5. 有 4 张红色的牌和 4 张蓝色的牌........................................................ 115 1.5.6. 输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数 ....... 116 1.5.7. 输入一个表示整数的字符串,把该字符串转换成整数并输出.............. 118 1.5.8. 给出一个数列,找出其中最长的单调递减(或递增)子序列..............121 1.5.9. 四对括号可以有多少种匹配排列方式.................................................124 1.5.10. 输入一个正数 n,输出所有和为 n 连续正数序列 ................................125 1.6. 面试题集合(五) .......................................................................................126 1.6.1. 输入一棵二元树的根结点,求该树的深度..........................................126 1.6.2. 输入一个字符串,打印出该字符串中字符的所有排列 ........................128 1.6.3. 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数 位于数组的后半部分 ...........................................................130 1.6.4. 给定链表的头指针和一个结点指针,在 O(1)时间删除该结点 .............132 1.6.5. 输入一个链表的头结点,从尾到头反到来输出每个结点的值..............134 1.6.6. 用 C++设计一个不能被继承的类 .......................................................136 1.6.7. 给定链表的头指针和一个结点指针,在 O(1)时间删除该结点 .............138 1.6.8. 一个数组中除了两个数字之外,其余数字均出现了两次.....................141 1.6.9. 两个单向链表,找出它们的第一个公共结点 ......................................142 1.6.10. 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符 ...147 1.7. 面试题集合(六) .......................................................................................148 1.7.1. 寻找丑数...........................................................................................148 1.7.2. 输入数字 n,按顺序输出从 1 最大的 n 位 10 进制数...........................152 1.7.3. 用递归颠倒一个栈.............................................................................156 1.7.4. 从扑克牌中随机抽 5 张牌,判断是不是一个顺子 ...............................158 1.7.5. 把 n 个骰子扔在地上,所有骰子朝上一面的点数之和为 S ..................162 1.7.6. 排出的所有数字中最小......................................................................165 1.7.7. 数组的旋转 .......................................................................................170 1.7.8. 给出一个函数来输出一个字符串的所有排列 ......................................171 1.7.9. 实现函数 double Power(double base,int exponent) .................................173 1.7.10. 更优的解法:....................................................................................175 1.7.11. 单列模式...........................................................................................176 1.8. 面试题集合(七) .......................................................................................178 1.8.1. 找出该字符串中对称的子字符串的最大长度 ......................................178 1.8.2. 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字 180 1.8.3. 输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点 180 1.8.4. 复杂链表...........................................................................................187 1.8.5. 链表面试题 .......................................................................................190 1.8.6. 链表和数字的区别在哪里 ..................................................................197 1.8.7. strstr()函数功能 .................................................................................198 1.8.8. 一个 int 数组,里面数据无任何限制,要求求出所有这样的数 a[i],其左 边的数都小于等于它,右边的数都大于等于它.................................................199 1.8.9. 一个文件,内含一千万行字符串,每个字符串在 1K 以内,要求找出所有 相反的串对,如 abc 和 cba。 ...........................................................................200 1.8.10. 给出一个文件,里面包含两个字段{url、size},即 url 为网址,size 为对应 网址访问的次数 ..............................................................................................205 1.9. 面试题集合(八) .......................................................................................209 1.9.1. 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数 209 1.9.2. 用 C 语言实现函数 void * memmove(void *dest,const void *src,size_t n) 210 1.9.3. 随机发生器 .......................................................................................212 1.9.4. 搜索引擎...........................................................................................212 1.9.5. 已知一个字符串,比如 asderwsde,寻找其中的一个子字符串比如 sde 的个数,如果没有返回 0,有的话返回子字符串的个数 ..........................................216 1.9.6. 编写一个程序,把一个有序整数数组放到二叉树中............................218 1.9.7. 大整数数相乘的问题 .........................................................................220 1.9.8. 求最大连续递增数字串......................................................................221 1.9.9. 函数将字符串中的字符'*'移到串的前部分 ..........................................222 1.9.10. 单链表,编程实现其逆转 ..................................................................223 1.10. 面试题集合(九)....................................................................................225 1.10.1. 删除字符串中的数字并压缩字符串 ....................................................225 1.10.2. 求两个串中的第一个最长子串(神州数码以前试题) ........................226 1.10.3. 不开辟用于交换数据的临时空间,如何完成字符串的逆序 .................228 1.10.4. 求随机数构成的数组中找到长度大于=3 的最长的等差数列 ................228 1.10.5. 外排序 ..............................................................................................230 1.10.6. 用递归的方法判断整数组 a[N]是不是升序排列 ..................................232 1.10.7. N 个鸡蛋放到 M 个篮子中,篮子不能为空 ........................................232 1.10.8. Hash .................................................................................................234 1.10.9. 如何迅速匹配兄弟字符串 ..................................................................242 1.10.10. 腾讯数组乘积赋值的问题 .................................................................243 1.11. 面试题集合(十) .......................................................................................244 1.11.1. 有一个整数数组,请求出两两之差绝对值最小的值............................244 1.11.2. 给出一个函数来合并两个字符串 A 和 B。字符串 A 的后几个字节和字符 串 B 的前几个字节重叠 ...................................................................................245 1.11.3. 编程实现两个正整数的除法(不能用除法操作符)............................250 1.11.4. 平面上 N 个点,没两个点都确定一条直线,求出斜率最大的那条直线所 通过的两个点..................................................................................................251 1.11.5. 字符串原地压缩 ................................................................................252 1.11.6. 一排 N(最大1M)个正整数+1 递增,乱序排列 ..............................253 1.11.7. 找出被重复的数字.............................................................................254 1.11.8. Hashtable 和 HashMap 的区别 ............................................................264 1.11.9. 用 1、2、2、3、4、5 这六个数字,写一个 main 函数,打印出所有不同的排列 268 1.11.10. 局部变量、全局变量和静态变量的含义 ............................................269 1.12. 面试题集合(十一) ................................................................................272 1.12.1. 有两个双向循环链表 A,B,知道其头指针为:pHeadA,pHeadB,请写一 函数将两链表中 data 值相同的结点删除...........................................................272 1.12.2. 找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad" 274 1.12.3. 把十进制数(long 型)分别以二进制和十六进制形式输出,不能使用 printf 系列 275 1.12.4. 40 亿个整数 ......................................................................................277 1.12.5. bitmap 减少 hash 法所用空间 ..........................................................281 1.12.6. 定义一个类似函数的宏,宏运的结果来表示大于和小于 .................285 1.12.7. 给定一个集合 A ................................................................................286 1.12.8. 已知一个函数 f 可以等概率的得到 1-5 间的随机数,问怎么等概率的得到 1-7 的随机数 ...................................................................................................289 1.12.9. 判断一个自然数是否是某个数的平方.................................................290 1.12.10. 一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个法,找出距离 f 值最近、大于 f 值的结点。复杂度如果是 O(n2)则不得分。 .............................291 1.12.11. strstr 和 strncmp 源码实现 .................................................................294 1.13. 面试题集合(十二) ................................................................................295 1.13.1. 对于从 1 到 N 的连续整集合合,能划分成两个子集合,且保证每个集 合的数字和是相等...........................................................................................295 1.13.1. 对于从 1 到 N 的连续整集合合,能划分成两个子集合,且保证每个集 合的数字和是相 ..............................................................................................295 1.13.2. Topk .................................................................................................298 1.13.3. Collection ..........................................................................................301 1.13.4. 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字 311 1.13.5. 求集合的所有子集的法 ..................................................................314 1.13.6. 将一个数中的偶数位 bit 和奇数位 bit 交换 .........................................318 1.13.7. 二分查找实现....................................................................................318 1.13.8. 集合合并...........................................................................................322 1.13.9. 把求子集运转换为组合问题 ...........................................................323 1.13.10. 法设计..........................................................................................324 1.14. 面试题集合(十三) ................................................................................327 1.14.1. 各种排序法....................................................................................327 1.15. 面试题集合(十四) ................................................................................393 1.15.1. 判断图里有环....................................................................................393 1.15.2. 整数的素数和分解问题......................................................................422 1.15.3. 求两个或 N 个数的最大公约数(gcd)和最小公倍数(lcm)的较优法 .....425 1.16. 面试题集合(十五) ................................................................................426 1.16.1. ApplicationContext .............................................................................426 1.16.2. ApplicationContext 事件传播 ..............................................................431 1.16.3. mysql 有多种存储引擎.......................................................................433 1.16.4. 论 MySQL 何时使用索引,何时不使用索引 .......................................436 1.16.5. SQL 多表连接查询实现语句 .............................................................439 1.17. 面试题集合(十六) ................................................................................442 1.17.1. 12 个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对 应的第一排的人高,问排列方式有多少种 ..........................................................442 1.17.2. 毒酒..................................................................................................448 1.17.3. 用代码验证阿里巴巴的一道关于男女比例的面试题............................448 1.17.4. 金币..................................................................................................451 1.17.5. 海盗..................................................................................................452 1.17.6. 1024..................................................................................................454 1.17.7. 最少零钱问题 最少硬币问题 .............................................................455 1.17.8. 石子合并...........................................................................................456 1.18. 面试题集合(十七) ................................................................................460 1.18.1. 生产者-消费者模式 ...........................................................................460 1.18.2. 动态规划...........................................................................................466 1.18.3. 01 背包 .............................................................................................472 1.18.4. 贪心法...........................................................................................477 1.18.5. 装箱问题...........................................................................................482 1.19. 教你如何迅速秒杀掉:99%的海量数据处理面试题 ...................................484

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧