编写程序,输入3个整数a、b和c,分别求出a和b的最大公约数及表达式a!+b!/(a+b)!和根号b平方-4ac的值并输出。
时间: 2023-05-20 18:01:13 浏览: 63
以下是求解a、b、c的最大公约数的代码:
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b, c;
printf("请输入三个整数a、b和c:");
scanf("%d%d%d", &a, &b, &c);
int d = gcd(a, b);
printf("a和b的最大公约数为:%d\n", d);
int e = 1;
for (int i = 1; i <= a; i++) {
e *= i;
}
int f = 1;
for (int i = 1; i <= b; i++) {
f *= i;
}
int g = 1;
for (int i = 1; i <= a - b; i++) {
g *= i;
}
int h = e * f / g;
printf("a! b!/(a b)!的值为:%d\n", h);
int i = b * b - 4 * a * c;
printf("根号b平方-4ac的值为:%d\n", i);
return 0;
}
对于lua closure factory 完整代码的问题,以下是一个示例:
function createCounter()
local count = 0
return function()
count = count + 1
return count
end
end
local counter1 = createCounter()
print(counter1()) -- 输出1
print(counter1()) -- 输出2
local counter2 = createCounter()
print(counter2()) -- 输出1
这是一个闭包工厂函数,它返回一个闭包函数,用于计数器。每次调用闭包函数时,计数器会自增1。
对于中文加密的问题,以下是一个简单的加密和解密函数:
function encrypt(str)
local result = ""
for i = 1, #str do
local char = string.sub(str, i, i)
local code = string.byte(char)
result = result .. string.format("%x", code)
end
return result
end
function decrypt(str)
local result = ""
for i = 1, #str, 2 do
local hex = string.sub(str, i, i + 1)
local code = tonumber(hex, 16)
result = result .. string.char(code)
end
return result
end
这里使用了string.sub、string.byte、string.format和tonumber等字符串处理函数,将字符串转换为十六进制编码,然后再将其转换回字符。