2019.1.20 自主訓練日誌

訓練第二天,首先總結一下昨天沒有解決的問題。
#include
using namespace std;
int main()
{
int l,r,n,m=0,flag=0,x;
cin>>l>>r;
if(l>r) swap(l,r);
for(n=l;n<=r;n++)
{
x=n;
while(x!=0)
{
m=x%10;
x=x/10;
if(m%70&&m!=0)
{
cout<<n<<endl;
flag=1;
break;
}
}
}
if(flag
0) cout<<“None”<<endl;
return 0;
}
代碼一上,錯誤很明顯,break語句的位置錯誤,之前是將break放在了條件語句之外,使得循環只進行了一次,只判斷了個位是否有7,因此導致其他位上有7的數據沒有判斷出來。將break放入判斷語句中後,當任何數位上出現7則退出循環,防止重複輸出。 另外,今天收穫了一個之前落下的知識點,int, long, long long都是整型數據,只是數的範圍不一樣,而float是浮點數,與以上數據類型有本質上的不同。只有整型數據纔可以進行取餘(取模)運算。 再就是c++中製表符\t的使用方法(超簡單,不知道自己當時怎麼學的눈_눈)用"將\t引用,即,cin>>n>>"\t";
今天的新題
輸入一個長度爲n(1 <= n <= 100000)數組ai,輸出他的前綴和。前綴和中的第i項,表示原數組中的前i項的和。輸入第一行一個整數n,表示數字長度接下來n行,每行一個整數ai,表示數組的內容。輸出輸出第一行爲數組長度n接下來n行爲前綴和的結果。
輸入樣例
3 1 2 3
輸出樣例
3 1 3 6
#include
using namespace std;
int a[100001],b[100001];
int main()
{
int n,sum;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
{
sum=0;
for(int j=1;j<=i;j++)
{
sum=sum+a[j];
}
b[i]=sum;
}
cout<<n<<endl;
for(int i=1;i<=n;i++)
cout<<b[i]<<endl;
return 0;
}
數據測試並沒有錯誤,至少到現在沒有試出bug,提交後現實超時,明天爭取找到縮時的方法。 除此以外,明天計劃繼續學習數據結構的內容,第一章看完。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章