接受用户输入的三种商品的价格。如果购买的三种商品中至少有一种商品的价格大于 50 或者三种商品的总额大于 100,则折扣率为15%,否则折扣率为0,计算并显示用户应付的钱数。
时间: 2024-03-19 21:45:08 浏览: 22
好的,我可以帮你解决这个问题。以下是程序的实现代码:
```python
price1 = float(input("请输入第1种商品的价格:"))
price2 = float(input("请输入第2种商品的价格:"))
price3 = float(input("请输入第3种商品的价格:"))
total_price = price1 + price2 + price3
if price1 > 50 or price2 > 50 or price3 > 50 or total_price > 100:
discount_rate = 0.15
else:
discount_rate = 0
payable_amount = total_price * (1 - discount_rate)
print("用户应付的钱数为:", payable_amount)
```
这个程序会先让用户输入三种商品的价格,然后计算出它们的总价。接着,根据题目要求判断是否有一种商品价格大于50或者总价大于100,从而确定折扣率。最后,按照折扣率计算出用户应付的钱数,并输出结果。
希望这个程序能帮到你,有问题可以随时问我。
相关问题
判断一个大于 2 的正整数 n 是否为素数,请用至少两种方法实现。c语言
方法一:暴力枚举法
暴力枚举法即为从 2 到 n-1 遍历每个数,判断是否能整除 n,若能整除则 n 不是素数,否则 n 是素数。
代码如下:
```c
#include <stdio.h>
int is_prime(int n)
{
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main()
{
int n;
printf("请输入一个大于2的正整数:");
scanf("%d", &n);
if (is_prime(n)) {
printf("%d是素数\n", n);
} else {
printf("%d不是素数\n", n);
}
return 0;
}
```
方法二:埃氏筛法
埃氏筛法是一种高效的素数判断方法,其基本思想是从 2 开始,将每个素数的倍数都标记成合数,直到最后剩下的都是素数。
具体实现过程如下:
1. 创建一个布尔数组,记录每个数是否为素数,初始值都设置为 true。
2. 从 2 开始,将每个素数的倍数都标记成合数,具体实现为遍历 2 到 sqrt(n) 的所有数,如果该数为素数,则将其倍数均标记为合数。
3. 遍历整个数组,如果某个数未被标记为合数,则该数为素数。
代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
int is_prime(int n)
{
if (n < 2) {
return false;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main()
{
int n;
printf("请输入一个大于2的正整数:");
scanf("%d", &n);
bool* primes = (bool*)malloc(sizeof(bool) * (n+1));
int i, j;
for (i = 0; i <= n; i++) {
primes[i] = true;
}
primes[0] = primes[1] = false;
for (i = 2; i <= sqrt(n); i++) {
if (is_prime(i)) {
for (j = i*i; j <= n; j += i) {
primes[j] = false;
}
}
}
if (primes[n]) {
printf("%d是素数\n", n);
} else {
printf("%d不是素数\n", n);
}
free(primes);
return 0;
}
```
判断一个大于 2 的正整数 n 是否为素数,请用至少两种方法实现。c++
方法一:试除法
实现思路:从 2 开始到 n 的平方根,逐个尝试是否能整除 n,如果能整除则说明 n 不是素数。
代码如下:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 2) {
return true;
}
int sqr = sqrt(n);
for (int i = 2; i <= sqr; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
cout << "请输入一个大于2的正整数:";
cin >> n;
if (isPrime(n)) {
cout << n << "是素数" << endl;
} else {
cout << n << "不是素数" << endl;
}
return 0;
}
```
方法二:质数规律法
实现思路:根据质数的规律,如果一个数 n 不是素数,则它可以分解为两个正整数 a 和 b 的乘积,其中 a 和 b 的大小可以相等,也可以不相等,但它们的积必须等于 n。根据这个规律,我们可以从 2 开始,依次判断 n 是否能被 2、3、4、5、6、...、n-1 整除,如果能则说明 n 不是素数。
代码如下:
```c++
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 2) {
return true;
}
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
cout << "请输入一个大于2的正整数:";
cin >> n;
if (isPrime(n)) {
cout << n << "是素数" << endl;
} else {
cout << n << "不是素数" << endl;
}
return 0;
}
```