输入为一正整数 n,(n<100) 输出小于等于 n 的与 7 无关的正整数的平方和 示例 21 输出2336
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入为一正整数 n,(n<100) 输出小于等于 n 的与 7 无关的正整数的平方和 示例 21 输出2336相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
int main()
int n,s,g,i,sum=0,d;
scanf("%d",&n);
if(n>=1&&n<=9)
g=n;
else if(n>=10&&n<=99)
s=n/10;
g=n%10;
for(i=1;i<=n;i++)
if(n%7!=0||s!=7||g!=7)
sum=sum+i*i;
printf("%d\n",sum);
return 0;
但是我我输入了21,但输出结果老出错,帮我看看程序错在哪里了
void main(void)
int n=120,i;
while(n>100)
printf("Type an integer of less 101\n");
scanf("%d",&n);
for(n++,i=1;i<n;i++)
if(!(i%7) || i%10==7 || i/10==7) continue;
printf("%d ",i*i);
printf("\n");
本回答被提问者和网友采纳 参考技术B #include<stdio.h>
int main()
int n,s,g,i,sum=0,d;
scanf("%d",&n);
for(i=1;i<=n;i++)
if(i>=1&&i<=9)
s =0;
g=i;
else if(i>=10&&i<=99)
s=i/10;
g=i%10;
if(i%7!=0&&s!=7&&g!=7)
sum=sum+i*i;
printf("%d\n",sum);
return 0;
参考技术C 除了||改成&&,还要把你的if else语句放到for里面追问
为啥要把||改为&& 而且把if放在for里面??
追答每个数都要判断是否是7的倍数或者是否含有7,所以把if放在for语句里面。
||改成&&,因为要既不是7的倍数,也不含有7,就用逻辑与,也就是且,为而不是或
与7无关的数
题目描述
一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7, 则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和。
输入描述:
案例可能有多组。对于每个测试案例输入为一行,正整数n,(n<100)
输出描述:
对于每个测试案例输出一行,输出小于等于n的与7无关的正整数的平方和。
示例1
输出
复制2336
注意某个位数上的数字为7函数的判断
#include<iostream> using namespace std; int fun(int m) { int x ; while(m) { x = m%10; m = m/10; if(x==7) return 1; } return 0; } int main() { int n; int sum; while(cin>>n) { sum = 0; for(int i=n;i>=1;i--) { if(i%7!=0&&fun(i)==false) sum+=i*i; } cout<<sum<<endl; } return 0; } /* 运行时间:8ms 占用内存:480k */
以上是关于输入为一正整数 n,(n<100) 输出小于等于 n 的与 7 无关的正整数的平方和 示例 21 输出2336的主要内容,如果未能解决你的问题,请参考以下文章
键盘输入小于10的正整数n,若输入超出范围,则重新输入,直到符合,计算并输出n!