目录
1.oj9(循环)数字反转
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零
输入
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。
输出
输出共 1 行,一个整数,表示反转后的新数。
样例输入
123
-380
样例输出
321
-83
#include<iostream>
using namespace std;
int main() {
int n, sum = 0;
cin >> n;
/* if(n<0)
* {
* cout << '-'; //!!! 可以提前输出
* n = - n; //取正
* }
*/
while (n) {
sum = sum * 10 + n % 10;//-1%10==-1 负数取模还是负数
n /= 10;
}
/* int a = n % 10;
* sum += a;
* sum *= 10;
* }
* sum /= 10;
*/
cout << sum << endl; //cout 自动去零(十进制前没有零)
return 0;
}
olol /* if(n<0)
* {
* cout << '-'; //!!! 可以提前输出
* n = - n; //取正
* }
*/
效果等价于
//-1%10==-1 负数取模还是负数
——————————————————
while(n){
/* int a = n % 10;
* sum += a;
* sum *= 10;
* }
* sum /= 10;
*/
可简化为
sum = sum * 10 + n % 10;
2.oj10(循环)敲七
输出7和7的倍数,还有包含7的数字。例如(17,27,37...70,71,72,73...)
输入
一个整数N。(N不大于30000)
输出
从小到大排列的不大于N的与7有关的数字,每行一个。
#include<iostream>
using namespace std;
int main() {
int n,s,j;
cin >> n;
for (int i = 1; i <= n; i++) {
s = 0; //计数器归零
j = i; //j i 检查代码注意变量值是否变化
while (!(j == 0)) {
if (j % 10==7) //一个数a有某个数x
//for
//计数器(!归零位置)
// a%10==x
// a/=10
s++;
j /= 10;
}
if (!(i%7) || s)
cout << i << endl;
}
return 0;
}
3.oj11(循环)杨老师6班测试
输入n,输出一个n*n的正方形,正方形由符号c1和c2组成,正方形的四条边和对角线由c1组成,其余部分由c2组成。
输入
一行一个整数,两个符号,分别以一个空格隔开。
输出
如题所述的正方形。
样例输入
10 x o
样例输出
XXXXXXXXXX XXOOOOOOXX XOXOOOOXOX XOOXOOXOOX XOOOXXOOOX XOOOXXOOOX XOOXOOXOOX XOXOOOOXOX XXOOOOOOXX XXXXXXXXXX
#include<iostream>
using namespace std;
int main() {
int n;
char a, b;
cin >> n >> a >> b;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == 1 || i == n || j == 1 || j == n|| j==i||j+i-1==n)
cout << a;
else
cout << b;
}
cout << endl;
}
return 0;
}