如果一个十进制的正整数能够被 7整除,或者某个位置的数字是7,则称该正整数为与7相关的数。求小于n(n<100)的所有与7无关的正整数的平方和。C语言编译
时间: 2024-09-22 18:03:56 浏览: 63
简单的输出十进制数输出其对应二进制数的位数
如果要用C语言编写程序来解决这个问题,我们需要遍历所有小于n的正整数,检查它们是否与7有关。如果一个数与7无关,即既不是7的倍数,也不是包含数字7的数,我们就将它加到总和里。以下是简单的C语言代码实现:
```c
#include <stdio.h>
#include <stdbool.h>
bool isRelatedToSeven(int num) {
// 判断是否是7的倍数
if (num % 7 == 0)
return true;
// 判断是否包含数字7的数字
char str[10];
sprintf(str, "%d", num);
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == '7')
return true;
}
return false;
}
int squareSumOfUnrelatedToSeven(int n) {
int sum = 0;
for (int i = 1; i < n; i++) {
if (!isRelatedToSeven(i)) {
sum += i * i;
}
}
return sum;
}
int main() {
int n;
printf("请输入一个小于100的正整数n: ");
scanf("%d", &n);
int result = squareSumOfUnrelatedToSeven(n);
printf("小于%d的所有与7无关的正整数的平方和是: %d\n", n, result);
return 0;
}
```
在这个程序中,`isRelatedToSeven`函数用于检查一个数是否与7有关,而`squareSumOfUnrelatedToSeven`函数负责计算符合条件的平方和。
阅读全文