这个题一定要认真写,如果第一遍读不懂可以多读几遍,或者第二天再读
因为这个题的方法特别好
#include <iostream>
using namespace std;
int main()
{
int t;
cin >> t;
while (t--)
{
int n, s, r, sum;
cin >> n >> s >> r;
cout << s - r << " ";
while (--n)
{
sum = r / n;
cout << sum << " ";
r -= sum;
}
cout << endl;
}
return 0;
}
下面的方法是我朋友写的,我十分感谢他😊
他的方法应该是
#include<iostream>
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
int n,s,r;
cin >> n >> s >> r;
int max = s - r;
int a[60];
a[0] = max;
int num = n-2;
for(int i = 1;i < n;i++)
{
if(r > num + max)
{
a[i] = max;
}
else if(r > num)
{
a[i] = r - num;
}
else {
a[i] = 1;
}
num--;
r = r - a[i];
}
for(int i=0;i<n;i++)
{
cout << a[i] << " ";
}
cout << endl;
}
return 0;
}
这是一道用是数学方法解决的题
这个题的算法标签是 进位制
代码
#include <iostream>
using namespace std;
const int N = 100010;
int a[N];
int main()
{
int n,m;
cin>>n>>m;
for (int i = 0; i < n; i ++ )
{
cin>>a[i];
}
for (int i = 0; i < n; i ++ )
{
cout<<m%a[i]<<' ';
m/=a[i];
}
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131430.html