来题目之前先来记录一下每次容易不记得的东西
取模和除法的区别
/
(除法运算符)
- 用于执行除法运算。
- 如果操作数是整数,则执行整数除法(即舍去小数部分)。
- 如果操作数中有浮点数,则执行浮点数除法。
#include <iostream>
using namespace std;
int main() {
cout << "10 / 3 = " << 10 / 3 << endl; // 3(整数除法,舍去小数部分)
cout << "10.0 / 3 = " << 10.0 / 3 << endl; // 3.33333(浮点数除法)
return 0;
}
%
(取模运算符)
- 只能用于整数(不能用于浮点数)。
- 计算的是两个整数相除后的余数。
#include <iostream>
using namespace std;
int main() {
cout << "10 % 3 = " << 10 % 3 << endl; // 1(10 除以 3 余 1)
cout << "15 % 4 = " << 15 % 4 << endl; // 3(15 除以 4 余 3)
return 0;
}
经典题目1 水仙花数
水仙花数(也叫阿姆斯壮数)是指一个 n 位数,它的每个位上的数字的 n 次幂和等于它本身。
例如,153 是一个水仙花数,因为:
13+53+33=153 1^3 + 5^3 + 3^3 = 15313+53+33=153
这个数的位数是 3,且每个位上的数字的立方和等于153。
思路:先想想如何能取得百位数,例如153 153/100 = 1
接着是十位数 153/10 = 15 15%10 = 5 个位数 153%10=3 这样就取得了各个数字,然后求其三次方的和满足i,就可以了。
#include<iostream>
using namespace std;
int main()
{
for(int i = 100; i<1000 ; i++)
{
int a = i/100; //百位数
int b = i/10%10; //十位数
int c = i%10; //个位数
if(a*a*a + b*b*b + c*c*c == i)
{
cout << i << endl;
}
}
system("pause");
return 0;
}
经典题目2 逢7敲桌子
int main()
{
for(int i =0; i<100 ;i++)
{
if(i/10==7||i%7==0||i%10==7)// i/10==7:十位数是7 i%7==0:7整除 i%10==7:个位数是7
{
cout<< "敲桌子" <<endl;
}
else
{
cout<<i<<endl;
}
}
}
经典题目3 99乘法表
for (int i = 1; i < 10; i++)
{
//cout << i << endl;
for (int j = 1; j <= i; j++)
{
cout << j << "*" << i << "=" << j * i << " " ;
}
cout << endl;
}
题目到此继续学习 取模整除