麻烦做一下这几个关于C语言的题目,要按题号将答案附上哦

2025-06-22 20:30:54
推荐回答(1个)
回答1:

// 1.1
#include
#include

int main() {
int N = 716699;
printf("%d\n", (int) sqrt(N));
return 0;
}

// 1.2
#include

int satisfy(int n) {
return (n / 100 + n / 10 % 10 + n % 10) % 15 == 0;
}

int main() {
int sum = 0, i;
for (i = 100; i != 1000; i += 2)
if (satisfy(i))
sum += i;
printf("%d\n", sum);
return 0;
}

// 2.1
#include

int satisfy(int n) {
return (n / 100 + n / 10 % 10 + n % 10) % 12 == 0;
}

int main() {
int sum = 0, i;
for (i = 101; i != 1001; i += 2)
if (satisfy(i))
sum += i;
printf("%d\n", sum);
return 0;
}

// 2.2
// Hard-coded, no extensibility
#include

int main() {
int total = 100, least = 5, i, j, count = 0;
total = total - (1 + 2 + 5) * least;

for (i = 0; i <= total / 5; ++i)
for (j = 0; j <= (total - 5 * i) / 2; ++j)
++count;
printf("%d\n", count);

return 0;
}

// 3.1
#include

int satisfy(int n) {
return (n / 1000 + n / 100 % 10 + n / 10 % 10 + n % 10) % 25 == 0;
}

int main() {
int sum = 0, i;
for (i = 1001; i != 10001; i += 2)
if (satisfy(i))
sum += i;
printf("%d\n", sum);
return 0;
}

// 3.2
// Hard-coded for N=49
#include

#define N 49
#define longint long long

int main() {
longint array[N + 1], i, sum = 0;
array[1] = array[2] = 1;

for (i = 3; i != N + 1; ++i)
array[i] = array[i - 2] + array[i - 1];

for (i = 1; i <= N; i += 2)
sum += array[i];

printf("%lld\n", sum);
return 0;
}

// 4.1
#include

int reverse(int m, int n) {
return m / 10000 == n % 10 && m % 10 == n / 10000 &&
m / 1000 % 10 == n / 10 % 10 && m / 10 % 10 == n / 1000 % 10 &&
m / 100 % 10 == n / 100 % 10;
}

int satisfy(int n) {
int m, e, c = 0;
for (e = 2; e != 10; ++e) {
m = n * e;
if (m >= 100000) continue;
if (reverse(n, m)) {
++c;
}
}
return c;
}

int main() {
int count = 0, i;
for (i = 10000; i != 100000; ++i)
count += satisfy(i);
printf("%d\n", count);
return 0;
}

// 4.2
#include

int satisfy(int n) {
int sum = 0, i;
for (i = 1; i <= (n >> 1); ++i)
if (n % i == 0)
sum += i;
return sum == n;
}

int main() {
int sum = 0, i;
for (i = 200; i <= 500; ++i)
if (satisfy(i))
sum += i;
printf("%d\n", sum);
return 0;
}