dengkairui作业
⼀个⼤于 3 的整数 ,判定它是否为素数(prime,⼜称质数)
#include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
if (n <= 1) {
printf("NO, %d IS NOT A PRIME!\n", n);
return 0;
}
if (n == 2) {
printf("YES, %d IS A PRIME!\n", n);
return 0;
}
if (n % 2 == 0) {
printf("NO, %d IS NOT A PRIME!\n", n);
return 0;
}
int is_prime = 1;
int limit = (int)sqrt(n) + 1;
for (int i = 3; i <= limit; i += 2) {
if (n % i == 0) {
is_prime = 0;
break;
}
}
if (is_prime)
printf("YES, %d IS A PRIME!\n", n);
else
printf("NO, %d IS NOT A PRIME!\n", n);
return 0;
}
求1+(1+2)+(1+2+3+…) , n值由键盘输⼊。要求使⽤ for 语句实现
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int total_sum = 0;
for (int i = 1; i <= n; i++) {
int sum_i = 0;
for (int j = 1; j <= i; j++) {
sum_i += j;
}
total_sum += sum_i;
}
printf("%d\n", total_sum);
return 0;
}
要求: 100000 以内的某个整数,满⾜两个条件:它加上 100 后是⼀个完全平⽅数,再加上 168 (即原来的整数
+268 )⼜是⼀个完全平⽅数,请问该数可能是多少
#include <stdio.h>
#include <math.h>
int main() {
for (int x = -100; x <= 100000; x++) {
int t1 = x + 100;
int root1 = (int)sqrt(t1);
if (root1 * root1 != t1) continue;
int t2 = x + 268;
int root2 = (int)sqrt(t2);
if (root2 * root2 != t2) continue;
printf("%d\n", x);
}
return 0;
}
要求:编程输出前 5 个莫尼森数。
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
bool isPrime(int n) {
if (n <= 1) return false;
if (n == 2) return true;
if (n % 2 == 0) return false;
int limit = (int)sqrt(n) + 1;
for (int i = 3; i <= limit; i += 2) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int count = 0;
int P = 2;
while (count < 5) {
if (isPrime(P)) {
long long M = (1LL << P) - 1;
if (isPrime((int)M)) {
printf("%lld\n", M);
count++;
}
}
P++;
}
return 0;
}
在选秀节⽬中有 10 个评委为参赛选⼿打分,分数为 1 到 100 分,选⼿最后的得分为去掉⼀个最⾼分和去掉⼀个
最低分后其余 8 个分数的平均分。
编写程序,输⼊ 10 个分数,输出选⼿的最后得分
#include <stdio.h>
int main() {
int scores[10];
int i;
for (i = 0; i < 10; i++) {
scanf("%d", &scores[i]);
}
int max = scores[0], min = scores[0];
int sum = scores[0];
for (i = 1; i < 10; i++) {
if (scores[i] > max) max = scores[i];
if (scores[i] < min) min = scores[i];
sum += scores[i];
}
sum = sum - max - min;
double average = sum / 8.0;
printf("%.2f\n", average);
return 0;
}
把 1 元兑换成 1 分、2 分、5 分的硬币,共有多少种不同的换法?
#include <stdio.h>
int main() {
int count = 0;
int x, y, z;
for (x = 0; x <= 20; x++) {
int remaining = 100 - 5 * x;
for (y = 0; y <= remaining / 2; y++) {
z = remaining - 2 * y;
if (z >= 0) {
count++;
}
}
}
printf("%d\n", count);
return 0;
}
求:斐波那契数列的前 40 个数。
#include <stdio.h>
int main() {
long long a = 1, b = 1;
printf("1\n1\n");
for (int i = 3; i <= 40; i++) {
long long next = a + b;
printf("%lld\n", next);
a = b;
b = next;
}
return 0;
}
猴⼦第⼀天摘下若⼲个桃,当即吃掉总数的⼀半,⼜多吃⼀个。
第⼆天早上⼜将剩下的桃⼦吃掉⼀半,⼜多吃⼀个。以后每天早上都吃了前天剩下的⼀半零⼀个,到第 10 天早上
只剩下最后⼀个桃。
问:第⼀天摘了⼏个桃
#include <stdio.h>
int main() {
int peach = 1; // 第10天早上剩下的桃子数
int day;
for (day = 9; day >= 1; day--) {
peach = (peach + 1) * 2;
printf("第%d天早上有:%d个桃子\n", day, peach);
}
printf("\n第一天共摘了:%d个桃子\n", peach);
return 0;
}

1828

被折叠的 条评论
为什么被折叠?



