python与7无关的数输出格式第一行为所有与7无关的数_与7无关的数

0

#include

#include

int re7num(int num){

if(0==num%7)return 1;

while(num>0){

if(num%10==7)return 1;

num/=10;

}

return 0;

}

int main(){

int num;

int sum;

while(scanf("%d",&num)!=EOF){

sum=0;

for(int i=1;i<=num;i++){

if(!re7num(i))sum+=pow(i,2);

}

printf("%d\n",sum);

}

return 0;

}

发表于 2017-02-07 17:28:05

回复(0)

更多回答

9

python solution: while True:

try:

res = 0

for i in range(1, int(input()) + 1):

if "7" not in str(i) and i % 7 != 0:

res += i ** 2

print(res)

except:

break

发表于 2017-09-08 11:03:56

回复(0)

5

规定了n<100不要太简单 using namespace std;

bool judge(int n){

if(n % 7 == 0)

return false;

if(n % 10 == 7)

return false;

if(n / 10 == 7)

return false;

return true;

}

int main(){

int n;

while(cin >> n){

int ret = 0;

for(int i = 1; i <= n; i++){

if(judge(i)){

ret = ret + i * i;

}

}

cout << ret << endl;

}

return 0;

}

发表于 2019-03-13 17:12:35

回复(1)

3

一行,多了我不要 try:

while True:

print(sum(map(lambda x:x**2,filter(lambda x:x%7!=0 and str(x).find('7')==-1, range(1,int(input())+1)))))

except Exception:

pass

编辑于 2018-10-04 11:19:40

回复(0)

2

注意审题:本题最后求得是与7无关的数的平方和

#include 

(720)#include 

using namespace std;

int isRelevant(int n) {

if (n % 7 == 0) {

return 0;

}

else {

while (n != 0) {

if (n % 10 == 7) {

return 0;

}

n /= 10;

}

return -1;

}

}

int main() {

int n, ret,sum;

while (scanf("%d", &n) != EOF) {

sum = 0;

for (int i = 1; i <= n; i++) {

ret = isRelevant(i);

if (ret == -1) {

sum += i * i;

}

}

printf("%d\n", sum);

}

return 0;

}

发表于 2020-02-23 23:58:58

回复(0)

2

看到 咖喱的cuy 大佬的解答受益匪浅,仿照思路先写判断函数judge再穷举 #include

#include

using namespace std;

bool judge(int x){

if((x%7!=0)&&(x%10!=7)&&(x/10!=7)){

return true;

}

else{

return false;

}

}

int main(){

int S = 0;

int n;

while(cin>>n){

for(int i=1; i<=n; i++){

if(judge(i)){

S += i*i;

}

}

cout<

}

return 0;

}

发表于 2020-02-01 11:45:05

回复(0)

3

#include

#include

using namespace std;

const int maxn = 101;

int num[maxn]; // 记录和

int main()

{

// 空间换时间

num[0] = 0;

num[1] = 1;

for(int i = 2; i < 100; ++i)

{

/**

1.不能被7整除

2.个位不为7

3.十位不为7

*/

if(i % 7 != 0 && (i%10) != 7 && (i/10) != 7)

{

num[i] = num[i-1] + i*i;

}

else

{

num[i] = num[i-1];

}

}

int n;

while(cin >> n)

{

cout << num[n] << endl;

}

return 0;

}

发表于 2016-08-09 14:01:49

回复(0)

1

下列算法可以适用于任意n值,不局限于两位数。

#include

#include

using namespace std;

int isnumber(int x){

if(x%7==0){//若x可被7整除,返回0值;

return 0;}

else {

int digit,j=x;

while(j!=0){

digit=j%10;//取最低位数值

if(digit!=7){

j=j/10;//若最低位数值不为7,令j为高位,再循坏取j的最低位数值。

}

else {

return 0;//若某一位上数值为7,返回0;

}

}

return x*x;//所有位上的数都不为7,返回x的平方;

}

}

int main(){

int i,n,sum=0;

scanf("%d",&n);

for(i=1;i<=n;++i){

sum+=isnumber(i);

}

printf("%d",sum);

return 0;

}

编辑于 2021-01-12 14:29:28

回复(0)

1

#include 

int Not7(int x){

if((x/10==7)||(x%10==7)||(x%7==0))

return 1;

else

return 0;

}

int main(){

int n;

while(scanf("%d",&n)!=EOF){

int sum=0;

for(n;n>0;n--){

if(!Not7(n))

sum += (n*n);

}

printf("%d",sum);

}

}

发表于 2020-04-24 13:13:12

回复(0)

1

#include

int main()

{

int i,n,sum=0;

scanf("%d",&n);

for(i=0;i<=n;i++)//0-n

if(i%7!=0&&i%10!=7&&i/10!=7)

sum+=i*i;

printf("%d",sum);

}

发表于 2020-04-01 21:23:34

回复(0)

1

Java

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt();

int sum=0;

for (int i = 1; i <= n; i++)

if (!(String.valueOf(i).contains("7") || i % 7 == 0)) sum+= i*i;

System.out.println(sum);

}

}

发表于 2020-03-18 15:27:25

回复(0)

1

该代码不只限于<100 #include 

using namespace std;

int main(){

int n,j,sum;

bool flag;

while(cin>>n){

sum=0;

for(int i=1;i<=n;i++){

j=i;

flag=true;

if(i%7!=0) {

while(j!=0){

j=j%10;

if(j==7){

flag=false;

break;

}

j=j/10;

}

if(flag) sum+=i*i;

}

}

cout<

}

return 0;

}

发表于 2020-03-02 19:41:45

回复(0)

1

先加非7倍数的平方和,再减个位和十位为7的数平方和,注意既是7的倍数,也是个位数为7的数(7)

#include

#include

using namespace std;

int main() {

int n;

cin >> n;

int sum = 0;

for (int i = 1; i <= n; i++) {

if ((i % 7 != 0))

sum += i*i;

if (i % 10 == 7&&i>7)

sum -= i*i;

if (i / 10 == 7)

sum -= i*i;

}

cout <

return 0;

}

发表于 2020-02-15 22:48:23

回复(0)

1

#include

int main(){

int n,a[101]={0};

while(scanf("%d",&n)!=EOF){

for(int i=0;i<=n;i++)

if((i/10) != 7 && (i%10) != 7 && (i%7) != 0)

a[i]=i*i;

for(int i=0;i<=n;i++)

if(a[i]!=0)

a[n+1]=a[n+1]+a[i];

printf("%d",a[n+1]);

}

return 0;

}

发表于 2019-03-02 12:19:30

回复(0)

1

#include

#include

using namespace std;

int notRelated(int i){

if(i%7==0)

return 0;

else if(i==7||i/10==7||(i-i/10*10)==7)

return 0;

return 1;

}

int main(){

int n;

cin>>n;

int sum = 0;

for(int i = 1;i <= n;i ++){

if(notRelated(i))

sum += i*i;

}

cout<

return 0;

}

发表于 2019-02-28 22:02:12

回复(0)

1

思路很清晰,因为限制了范围,所以与7相关的只用考虑十位为7,个位为7和被7整除,在judge函数中进行验证,都不满足则返回0,表示与7无关。

#include

using namespace std;

bool judge(int i){

if(i/10==7)

return 1;

if(i%10==7)

return 1;

if(i%7==0)

return 1;

return 0;

}

int main(){

int n;

while(cin>>n){

int total=0;

for(int i=1;i<=n;i++){

if(!judge(i))

total+=i*i;

}

cout<

}

}

发表于 2019-02-07 20:16:16

回复(1)

1

#define _CRT_SECURE_NO_WARNINGS

#include

#include

using namespace std;

/*

一个正整数,

如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7, 则称其为与7相关的数.

现求所有小于等于n(n<100)的与7无关的正整数的平方和。

*/

int main()

{

int n;

while (cin>>n)

{

int sum = 0;

for (int i = 1; i <= n; i++)

{

int flg = 0;

if (i % 7 == 0)

{

flg = 1;

}

int t = i;

while (t!=0)

{

int per = t % 10;

t /= 10;

if (per == 7)

{

flg = 1;

break;

}

}

if (flg == 0)

{

sum += i*i;

}

}

cout << sum << endl;

}

return 0;

}

编辑于 2018-03-19 15:50:59

回复(1)

1

#include

#include

int main(){

int sum=0;

int n;

int a[100];

int size=0;

while(scanf("%d",&n)!=EOF){

for(int i=1;i<=n;i++){

if(i%10!=7&&i/10!=7&&i%7!=0){

a[size++]=pow(i,2);

}

}

for(int j=0;j

sum+=a[j];

}

printf("%d\n",sum);

}

return 0;

}

发表于 2019-03-14 17:49:40

回复(0)

1

#include

#include

using namespace std;

bool isRelatedWithSeven(int n){

while(n>0){

if(n%7==0||n%10==7){

return true;

}

n/=10;

}

return false;

}

int main(){

vector list;

for(int i=1;i<100;i++){

if(!isRelatedWithSeven(i)){

list.push_back(i);

}

}

int n;

while(scanf("%d",&n)!=EOF){

int result=0;

for(int i=0;i<=n;i++){

if(list[i]>n)

break;

result+=list[i]*list[i];

}

printf("%d\n",result);

}

return 0;

}

发表于 2016-10-25 23:23:11

回复(0)

0

#include

using namespace std;

bool Judge7(int x) {

if((x  %= 10) == 7){ return true;}

if(x/10 ==7) return true;

else return false;

}

int main(){

int n;

cin >> n;

int sum = 0;

for(int i = 0; i <= n; i++){

if(i % 7 != 0 && (Judge7(i)==false)){

sum += i*i ;

}

}

cout << sum << endl;

return 0;

}

发表于 2021-01-28 11:49:55

回复(0)

0

#include 

int main()

{

int n = 0;

int i = 0;

int sum = 0;

scanf("%d", &n);

if(n <= 0 || n >= 100)

return -1;

for(i = 1; i <= n; i++)

{

if(i % 7 != 0 && i % 10 != 7 && i / 10 != 7)

sum += i * i;

}

printf("%d\n", sum);

return 0;

}

发表于 2021-01-26 14:52:19

回复(0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值