WHAT I DID:
I remap the ID of the control point so to get the twist angle for each control point of the curve circle.
Then I add these angles to each control point.
I checked the spreadsheet and confirmed each control point gets twisted to the desired angles, but the result is not as wished.
I am confused here, I am not sure why this is not working.
Need community help.
Thanks!

Thank you for answering my question!
If I connect the viewer just after the Set Curve Tilt node, the spreadsheet will show every control point is tilted to the right angle. I am not sure if this socket expects a radian or degree value, but seems like things are not wrong here.

May I ask one more question?
In the Map Range node, the From Max is set same as the resolution of the curve cycle.
But if we see the spreadsheet, the ID of the control points ends at 15, because the first one starts from 0.
Shouldnâ€™t we match the exact bound of the data range(ID numbers, from 0 to 15) when we remap this ID data into the new angle data?
It is confusing me a lot.
Why the wrong range(bound of data) can produce the very right result here?

Oh, I get it!
If I map it from 0 to 15, the exact range of the ID, the last CP will tilt 360 degrees, but if I do it from 0 to 16, the last one will tilt less than 360, so it can match the first CP with a tilted angle.
Thanks!@ higgsas