输入n,求n以内(包括n)个位数为6且能被3整除的所有数,各个数之间用空格隔开
#include <stdio.h>
int main() {
int n;
printf("请输入一个正整数 n:");
scanf("%d", &n);
printf("%d ", 6); // 6 是个位数为 6 且能被 3 整除的第一个数
// 遍历 1 到 n 的所有数,检查个位数是否为 6 且能被 3 整除
for (int i = 9; i <= n; i += 10) { // 只遍历个位数为 6 的数字
if (i % 3 == 0) { // 检查能否被 3 整除
printf("%d ", i);
}
}
return 0;
}
#include<stdio.h>
#include <string.h>
void main(){
int i,j;
int a[3][3];
for(i=0;i<3;i++)//输入数组
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%3d",a[i][(j+1)%3]);//右移一位输出
}
printf("\n");
}
}
可以使用循环从1到n遍历所有数字,判断是否能被3整除且个位数为6,如果是则将其加入结果的数组中。最后遍历完所有数字后,将结果数组转化为字符串返回即可。
具体代码实现如下:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<int> findNums(int n) {
vector<int> res;
for(int i=1; i<=n; i++) {
if(i % 3 == 0 && i % 10 == 6) {
res.push_back(i);
}
}
return res;
}
string printNums(vector<int> nums) {
string res = "";
for(int i=0; i<nums.size(); i++) {
res += to_string(nums[i]) + " ";
}
return res;
}
int main() {
int n;
cin >> n;
vector<int> nums = findNums(n);
string res = printNums(nums);
cout << res << endl;
return 0;
}