Golang 001. 统计7的倍数或包含7的数字

【基础入门题】Golang 001. 统计7的倍数或包含7的数字

求100以内的正整数是7的倍数或包含7的数字并统计总个数。

思路:判断是否7的倍数非常容易,所以主要看数字是否包含7。

方法一:取得各位上的数字,只要有一个是7即满足条件

package main

import "fmt"

func Contain7(number int) bool {
	result := false
	for i, j := 0, 1; i < 3; i++ { //100以内,只要循环3只
		if number/j%10 == 7 {
			result = true
			break
		}
		j *= 10
	}
	return result
}

func main() {

	number := 1
	count := 0

	for number <= 100 {
		if number%7 == 0 || Contain7(number) {
			fmt.Print(number)
			if count%5 == 4 {
				fmt.Println()
			} else {
				fmt.Print("\t")
			}
			count++
		}
		number++

	}

	fmt.Printf("\n满足条件的数共有%d个。", count)

}

方法二:转成字符串看是否包括“7”,需要用到strings.Contains()和strconv.Itoa()。

package main

import (
	"fmt"
	"strconv"
	"strings"
)

func main() {

	number := 1
	count := 0

	for number <= 100 {
		if number%7 == 0 || strings.Contains(strconv.Itoa(number), "7") {
			fmt.Print(number)
			if count%5 == 4 {
				fmt.Println()
			} else {
				fmt.Print("\t")
			}
			count++
		}
		number++

	}

	fmt.Printf("\n满足条件的数共有%d个。", count)

}

执行结果:

7   14 17 21 27
28 35 37 42 47
49 56 57 63 67
70 71 72 73 74
75 76 77 78 79
84 87 91 97 98

满足条件的数共有30个。

欢迎加入CSDN社区!icon-default.png?t=LA92https://bbs.csdn.net/forums/PythonTogether 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hann Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值