#include<bits/stdc++.h>
using namespace std;
long long n, a;
int main() {
cin >> n;
while (n--) {
cin >> a;
int sum = 0;
while (a > 0) {
sum += a % 10; // 取个位累加
a /= 10; // 去掉个位
}
cout << (sum % 7 == 0 ? "Yes" : "No") << endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int m;
int main() {
cin >> m;
for (int i = 1; i <= m; i++) {
cout << '+';
// 输出前半部分 '-'
for (int j = 2; j < i; j++) cout << '-';
// 中间 '+'
if (i != 1 && i != m) cout << '+';
// 输出后半部分 '-'
for (int j = 1; j < m - i; j++) cout << '-';
cout << '+' << endl;
}
return 0;
}
注意
首尾行处理:首行和末行中间无 +。
对称性:确保每行的 + 和 - 分布对称。
无注释满分代码
问题1:数位之和
#include<bits/stdc++.h>
using namespace std;
long long n,a;
int main(){
cin>>n;
while(n--){
cin>>a;
int sum=0;
while(a>0){
sum+=a%10;
a/=10;
}
cout<<(sum%7?"No":"Yes")<<endl;
}
return 0;
}
问题2:小杨的 N 字矩阵
#include<bits/stdc++.h>
using namespace std;
int m;
int main(){
cin>>m;
for(int i=1;i<=m;i++){
cout<<'+';
for(int j=2;j<i;j++)cout<<'-';
if(i>1&&i<m)cout<<'+';
for(int j=1;j<m-i;j++)cout<<'-';
cout<<'+'<<endl;
}
return 0;
}